React原理

1.函数式编程

1.一种编程范式,概念比较多

2.纯函数

3.不可变值

2.vdom和diff

1.只比较同一层级,不跨级比较

2.tag不相同,直接删掉重建,不再深度比较

3.tag和key相同,则认为是相同节点,不再深度比较

3.JSX的本质

jsx本质是通过React.createElement();来实现的

4.SetState是同步还是异步

SetState无所谓同步还是异步

看是否能命中batchUpdate机制

判断isBatchingUpdates

哪些能命中batchUpdate机制

生命周期(和它调用的函数)

React中注册的函数(和它调用的函数)

React可以“管理”的入口

哪些不能命中batchUpdate机制

setTimeout,setInterval(和它调用的函数)

自定义的Dom事件(和它调用的函数)

React“管不到”的入口

5.transcation事务机制

transcation.initialize=function(){
   console.log('initialize')
}
transcation.close=function(){
   console.log('close')
}
function method(){
   console.log('abc')
}

transcation.perfrom(method);

6.JSX的本质和Vdom

1.JSX即createElement函数

2.执行生成Vnode

3.patch(elem,vnode)和patch(vnode,newvnode)来实现渲染和更新

7.组件渲染和更新的过程

1.组件的渲染

1.获取props和state

2.render()根据JSX生成Vnode

3.通过patch(elem,Vnode) 来进行渲染

2.组件的更新

1.setState(newState)--->dirtyComponents

2.render生成newVnode

3.patch(vnode,newVnode)

其中patch分为两个阶段:

reconciliation阶段-执行diff算法,纯JS计算

commit阶段-将diff结果渲染DOM

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值