anu icon indicating copy to clipboard operation
anu copied to clipboard

React Hook的支持

Open RubyLouvre opened this issue 5 years ago • 4 comments

主要参见外国人的例子,https://www.youtube.com/watch?v=4b8jxigTfRI&feature=youtu.be&a=

<!DOCTYPE html>
<html>

<head>
	<meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
<!--
<script src="https://cdn.bootcss.com/react/16.7.0-alpha.2/umd/react.development.js"></script>
  <script src="./react-dom.development.js"></script>
-->
 <script src="./dist/React.js"></script>
  
	<script type='text/javascript' src="./lib/babel.js"></script>

</head>

<body>

	<div id='root' class="root">

	</div>
	<script type='text/babel'>
        
var container = document.getElementById('root');
  var div = container;
  if (!window.ReactDOM) {
      window.ReactDOM = React;
  }
  var expect = function(a) {
      return {
          toBe: function(b) {
              console.log(a, 'vs', b, a === b);
          },
          toEqual(b) {
              console.log(a, 'vs', b, a + '' === b + '');
          },
          toThrow(){
              try{
                  a()
              }catch(e){
                  console.log(e,"catch")
              }
          }
      };
};
var {useState,useCallback} = React;
var last
function App (){
    const [count, dispatch] = useState(5);
    function increment(){
      dispatch(p => p + 1 )
    }
    console.log(last, increment === last )
     last = increment;
      return <div> 
              <button type='button' onClick={increment}>{ count }</button>
            </div>
}
ReactDOM.render(<App />, container)
	
    </script>
</html>

RubyLouvre avatar Dec 21 '18 10:12 RubyLouvre

<!DOCTYPE html>
<html>

<head>
	<meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
<!--
<script src="https://cdn.bootcss.com/react/16.7.0-alpha.2/umd/react.development.js"></script>
  <script src="./react-dom.development.js"></script>
-->

 <script src="./dist/React.js"></script>

	<script type='text/javascript' src="./lib/babel.js"></script>

</head>

<body>

	<div id='root' class="root">

	</div>
	<script type='text/babel'>
        
var container = document.getElementById('root');
  var div = container;
  if (!window.ReactDOM) {
      window.ReactDOM = React;
  }
  var expect = function(a) {
      return {
          toBe: function(b) {
              console.log(a, 'vs', b, a === b);
          },
          toEqual(b) {
              console.log(a, 'vs', b, a + '' === b + '');
          },
          toThrow(){
              try{
                  a()
              }catch(e){
                  console.log(e,"catch")
              }
          }
      };
};
var {useState,useCallback} = React;
var last
function App (){
    const [count, dispatch] = useState(5);
    var increment = useCallback(() => {
      dispatch(p => p + 1 )
    }, [])
    console.log(last, increment === last )
     last = increment;
      return <div> 
              <button type='button' onClick={increment}>{ count }</button>
            </div>
}
ReactDOM.render(<App />, container)
	
    </script>


</html>

RubyLouvre avatar Dec 21 '18 13:12 RubyLouvre

React-Hooks现在支持吗? 对于小程序,我觉得React-hooks就够了,太好用了.

phpsmarter avatar Feb 19 '19 04:02 phpsmarter

小程序无法用Hooks,原因是页面上所有数据都是this.state.xxx, this.props.yyy, 而函数式组件没有this。详见 https://rubylouvre.github.io/nanachi/documents/jsx.html

RubyLouvre avatar Feb 21 '19 06:02 RubyLouvre

第一个函数不能用箭头函数,这是为什么? js里为什么要用箭头函数? 第一层不用怎么理解?

phpsmarter avatar Feb 27 '19 06:02 phpsmarter