react--Hooks
发布时间:2020-12-15 20:18:51 所属栏目:百科 来源:网络整理
导读:React Hooks 是 React? 16.7.0-alpha ?版本推出的新特性 优点 无状态组件function不能带state 如果组件里需要用state,只能用class 没有this指向的问题 减少了层级嵌套, 代码简洁 不用调用各种生命周期 新建hooks文件夹 hooks/test1.js? ? ?hooks/useState
React Hooks 是 React? 优点
hooks/test1.js import React from ‘react‘; export default class Test1 extends React.Component{ constructor(props){ super(props); this.state = { count: 0 } } render(){ return ( <div> <p onClick={() => this.setState({count: this.state.count + 1})}>点我试试{this.state.count}</p> </div> ) } } hooks/useState.js import React,{useState} from ‘react‘; export default function UseStateTest(){ const [count,setCount] = useState(0); const [str,setStr] = useState(‘‘); return ( <div> <p onClick={() => setCount(count + 1)}>点我试试{count}</p> <p onClick={() => setStr(str + 1)}>点我试试{str}</p> </div> ) } router/index.js修改如下 import React from ‘react‘; import {Switch,Route} from "react-router-dom"; import Home2 from ‘../pages/Home2‘; import OnePage from ‘../pages/OnePage‘; import TwoPage from ‘../pages/TwoPage‘; import This from ‘../pages/This‘; import Mount from ‘../pages/Mount‘; import HooksTest1 from ‘../hooks/test1‘; import HooksUseState from ‘../hooks/useState‘; const Routers = ( <Switch> <Route path="/" exact component={Home2} /> <Route path="/onePage" component={OnePage} /> <Route path="/twoPage/:id" component={TwoPage} /> <Route path="/this" component={This} /> <Route path="/mount" component={Mount} /> <Route path="/hooksTest1" component={HooksTest1} /> <Route path="/hooksUseState" component={HooksUseState} /> </Switch> ); export default Routers 启动项目http://localhost:3000/#/hooksTest1? ?点击“点我试试”,这是传统的开发方式 再http://localhost:3000/#/hooksUseState?看代码 是不是简单明了 const [count,setCount] = useState(0);
const [str,setStr] = useState(‘‘); import {useState,useCallback} from ‘react‘; export default function useInputValue(initialValue){ const [value,setValue] = useState(initialValue); const onChange = useCallback(function(event){ setValue(event.currentTarget.value) },[]); return { value,onChange } } ?
import React,{useState} from ‘react‘; import useInputValue from "./inputValue"; export default function UseStateTest(){ const [count,setStr] = useState(‘‘); const name = useInputValue("huangJie"); return ( <div> <p onClick={() => setCount(count + 1)}>点我试试{count}</p> <p onClick={() => setStr(str + 1)}>点我试试{str}</p> <input {...name} /> </div> ) }
inputValue.js里新增了useCallback API字面意思就是通过回调的方式setValue,适合的场景有很多
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |