vue & react & 小程序 数据流对比

vue & react & 小程序 数据流对比

数据流
  • Vue 单向

​ 双向数据绑定 v-model原理(input或change)

​ 显示初始值 :value=“msg”

​ 当用户修改input的值时,同时将用户输入的结果赋值给data

​ @input="(event)=>{this.msg=event.target.value}"

React 单向

小程序 单向 :

​ 双向数据绑定->有->但是不好用

  • 获取数据

    Vue this.msg->数据代理 ->msg属性具有get方法,返回this.$data.msg

    React this.state.msg->没有数据代理

    小程序 this.data.msg->没有数据代理

  • 修改

    Vue this.msg=234->数据代理 ->msg属性具有set方法,会设置给this. d a t a . m s g − > 数 据 劫 持 , 当 data.msg ->数据劫持,当 data.msg>,data中的数据发生变化,会触发dep.notify()

    Vue的最小更新单位->组件(能做到如此精准的原因是因为每个组件都有dep和watcher的关系,还有每个data属性的set方法)

React this.state.msg=234(不行的) this.setState({msg:234})(可行) 持久化存储

React的最小更新单位->App(不精准的原因,因为没有数据劫持)

面试题:setState更新state的效果是同步还是异步?

答:某些情况是同步更新,某些情况是异步更新

异步更新(将更新的效果延后,多次更新合并成一次):

​ 1.生命周期(生命周期结束之后,才会执行所有的更新)

​ 2.合成事件

同步更新:

​ 1.原生事件

​ 2.定时器

面试题:如何区分合成事件和原生事件

  <div onClick={handleClick}>123</div>    
  <div onclick={handleClick}>123</div>

​ box.onmousemove

​ 合成事件(捡来的):驼峰命名法

​ 实现原理:将所有的事件都绑定在document上,实现事件委派

​ 原生事件(亲儿子):全小写

小程序(状态持久化)

this.data.msg=234(不可行)

this.setData({

​ msg:234

})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值