您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    这6个React技巧让你取得愉悦任务体验
    时间:2020-04-07 21:25 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

    这6个React技巧让你取得愉悦任务体验

    并不是每团体都发现了这些技巧,笔者的很多同事就还没有发现。但它们确实复杂好用,让人心境愉悦。一同来看看吧!

    以下一切例子均围绕功用性组件(components)和钩子(hooks)展开。

    React 带键的片段

    有时,需求在列表内渲染多种组件。假设不需求容器,就可以运用React 片段。示例如下:

    const pokemons = ['Charizard''Mr. Mime''Jynx'

                pokemons.map(pokemon => ( 

                 <> 

                   <strong>Name: </strong> 

                   <span>{pokemon}</span> 

                 </> 

                )) 

    上述代码没有成绩,但React会对键停止提示:

    Warning: Each child in a listshould have a unique "key" prop. 

    顺序猿普通会以为这没什么大不了,用div交流片段就好啦。

    这么做当然没有成绩,但假设改可以运用带键的React片段,即使用 改动语法,这样一切都迎刃而解:

    pokemons.map(pokemon => ( 

                         <React.Fragmentkey={pokemon}> 

                           <strong>Name: </strong> 

                           <span>{pokemon}</span> 

                         </React.Fragment> 

                       )) 

    向setState传递函数

    useState和useEffect恐怕是比较常运用的钩子了。顺序员需求向useEffect传递依赖项,否则就会出错或会出现不测结果。但是,假设依赖项仅仅是和相关 setState连用的形状,或许就无需对其停止传递了。

    先来看个不太完美的版本:

    const [count, setCount] =useState(0) 

              useEffect(() => { 

               const id =setInterval(() => { 

                 setCount(count +1); 

               }, 1000); 

              return () =>clearInterval(id); 

              }, [count]); 

    更新之后是什么样呢:

    const [count, setCount] =useState(0) 

              useEffect(() => { 

               const id =setInterval(() => { 

                 setCount(c => c +1); 

               }, 1000); 

               return () =>clearInterval(id); 

              }, []); 

    用useReducer完成useState

    这是笔者在推特上发现的,虽然没有实践作用,但可以了解 useReducer的才能。

    假设直接从useReducer停止前往操作,那么它将和useState起到简直异样的作用。有人能够会说运用useState没有必要。那篇推文是这样讲的:

    代码如下,可自行拷贝尝试:

    const [name, setName] =useReducer((_, value) => value, 'James');<input value={name} onChange={e =>setName(e.target.value)} /> 

    将字符串值作为HTML元素

    有时,顺序员希望创立一个可以成为灵敏HTML元素的组件。或许读者见过去自CSS-in-JS库的as prop,比如emotion。

    假定要创立一个可以渲染为button或 a 的<Button> 组件,有哪些选择呢?可以用它提取样式,创立两个不同的组件;也可以只创立一个组件,一同运用 React.createElement 和 as prop:

    constButton= ({ as ='button', ...props }) => React.createElement(as, props) 

    (责任编辑:admin)