博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
React16 新特性
阅读量:4647 次
发布时间:2019-06-09

本文共 1461 字,大约阅读时间需要 4 分钟。

一、使用Error Boundary处理错误组件

       
React16之前:组件在运行期出错,会阻塞整个应用的渲染。

        React16之后:引入新的错误处理机制——Error Boundary【错误边界】,当某个组件发生错误时,可以通过Error Biundary提供的内容代替组件的错误。

class ErrorBoundary extends Component {    constructor(props) {        super(props)        this.state = {            hasError: false        }    }    componentDidCatch(err, info) {        this.setState({ hasError: true })    }    render() {        if (this.state.hasError) {            return 
Something went wrong!
} return this.props.children } } export { ErrorBoundary }

  Error Boundary可以看作是一种特殊的React组件,新增了componentDidCatch这个生命周期函数,它可以捕获自身及子树上错误并对错误做优雅处理【⚠️:它并不能捕获runtime所有的错误,比如组件回调事件里的错误】

 

 

二、render方法返回新增数据类型

        React16之前:必须返回单个元素

        React16之后:支持2种新的返回类型【数组、字符串】

   

render(){    return [        
hello
,
world
]}

 

render(){    return 'hello,world'}

 

三、使用createProtal 将组件渲染到当前组件树之外

      【典型应用场景】渲染应用的全局弹窗,任意组件都可以将弹框组件渲染到跟节点上。

        通过使用createProtal可以将组件渲染到我们想要的任意DOM节点中,但该组件依然处在React的父组件之内。

render(){    //child——可以被渲染的react节点    //container——一个Dom元素,child将被挂载到这个DOM上    return ReactDOM.createPortal(child,container)}

 

四、自定义DOM属性

        React16之前:忽略无法识别的HTML和SVG属性,属性只能通过data-*形式添加

        React16之后:把不会识别的属性传递给DOM

 

五、setState传入null时不会再触发更新

        更新state时,如果值没有变化,返回null可以直接避免触发更新,不会引起重复渲染

   

setName(name){    this.setState((state)=>{        if(state.name ===name){            return null        }        return {name}    })}

 

 

转载于:https://www.cnblogs.com/EllenChen/p/10553815.html

你可能感兴趣的文章
Solr reRankQuery加自定义函数实现搜索二次排序
查看>>
latex学习(四)tlmgr
查看>>
centos6.5 bugzilla4.4.5 汉化
查看>>
ros topic 发布一次可能会接收不到数据
查看>>
字符串的扩展
查看>>
冒泡排序_c++
查看>>
linux常见术语示意
查看>>
CodeForces743E. Vladik and cards 二分+状压dp
查看>>
GO语言面向对象
查看>>
1111评论
查看>>
CodeForces 546E - Soldier and Traveling(最大流)
查看>>
linux下(Window当然也可以)解决idea创建maven项目导入过慢问题
查看>>
如何设计一个完美的权限管理模块
查看>>
layer---口碑极佳的web弹层组件
查看>>
自己的一些简要学习点
查看>>
HTPJ 1268 GCD
查看>>
细说程序员最后归宿
查看>>
hdu2063 匈牙利算法 二分最大匹配模版题
查看>>
工作中的一些经验小结
查看>>
【编程题目】数组中超过出现次数超过一半的数字 ☆
查看>>