当前位置: 首页 > news >正文

自助网站建设工具广州网站建设海珠信科

自助网站建设工具,广州网站建设海珠信科,阿里云服务器官方网站,网站建设推广加盟vue和react的区别总是被提及,关于这个问题最近也有了自己的想法。我认为它们之间最大的区别是对于响应数据变化的实现方式不同。 vue实现响应的方法是,首先收集依赖这个数据的副作用(视图更新、计算属性等),当数据修改…

vue和react的区别总是被提及,关于这个问题最近也有了自己的想法。我认为它们之间最大的区别是对于响应数据变化的实现方式不同

vue实现响应的方法是,首先收集依赖这个数据的副作用(视图更新、计算属性等),当数据修改时统一调用依赖这个数据的副作用完成响应。

react实现响应的方法是,需要对比两次数据是否相同,修改前和修改后数据相同则不更新组件,否则触发响应,更新整个组件,包括子组件。

<script setup>
import { ref, watch } from 'vue'const question = ref('')watch(question, async (newQuestion) => {console.log(newQuestion)
})
</script><template><p>Ask a yes/no question:<input v-model="question" /></p><p>question: {{ question }}</p>
</template>

在这个vue例子里:question是一个响应对象,而watch的第二个参数就是监听对象question变化的副作用,除了watch的第二个参数还有视图中的input的第二个p元素都在监听question这个响应对象的变化。

question这个响应对象变化后并不需要重新执行setup这个函数来对比变化前后的值,所以setup函数中的ref('')watch(..., ...)等并没有被重新执行

在vue中数据是可变的,而副作用监听数据的变化。所以在vue中props中的数据是可以被改的,并且vue本身还能够支持props数据变化之后的响应。vue中并不是严格的数据从上往下,事件从下往上的机制。vue的响应以数据源中心向外辐射,换句话说只要数据改了vue就能响应变化,无论这个数据是在什么地方改的。

import { useState, useEffect } from 'react'export default function AboutQuestion() {const [question, setQuestion] = useState('')useEffect(() => {console.log(question)}, [question])return (<><p>Ask a yes/no question:<input onInput={(ev) => {setQuestion(ev.target.value)}} /></p><p>question: {question}</p></>)
}

setState触发时会重新执行整个AboutQuestion函数,包括useStateuseEffect都会被重新执行,只有整个函数执行了才有机会再次判断依赖是否更新从而执行对应的副作用useEffect会对比本次的question和上一次的变量question不一样则会执行其第一个入参函数。重新执行的函数AboutQuestion会返回新的virtualDOM后diff根据结果更新真实DOM。

从这个过程里可以看出来react需要保持数据不可变,如果数据变了useEffectsetSstate是无法正常对比出前后数据的差异的,从而无法正常执行。

所以在react中数据流向是严格从上往下,事件是从下往上。子组件想要改变数据,只能通过数据源组件提供的方法修改,直接修改是不起作用的。

以上就是我理解的react和vue最重要的区别。

http://www.yayakq.cn/news/755717/

相关文章:

  • hui怎么做网站免费企业建站开源系统
  • 合肥有什么好的网站建设公司好乌克兰服务器
  • 哪里的郑州网站建设网站安全证书
  • e网站的图标怎么做苏州seo营销
  • 适合大学生个体创业的网站建设网站容量
  • 免费学ps的网站有哪些网架公司招聘信息
  • 昆山app网站制作路由器通过域名解析做网站
  • 甘肃机械化建设工程有限公司网站室内设计者联盟官网
  • 网站备案查询验证码错误专业的南昌网站建设
  • 网站开发易语言口碑营销中容易出现哪些问题
  • 做网站赚钱有哪些途径如何设计个人网站
  • mysql 网站登录密码wordpress换域名主题
  • 嘉兴路街道网站建设wordpress删除文章作者
  • 建工集团两学一做网站书店网站规划与建设
  • 正版win10做win7系统下载网站网络营销的常用策略
  • 企业建网站一般要多少钱西安网站建设首选
  • 购物网站项目经验网页设计欣赏app
  • 泉州网站关键词推广广州建设交易中心官网
  • 电商运营工作很难做吗优化搜狐的培训
  • 济宁做网站多少钱网站被墙
  • 江门医疗网站建设房产网站建网站
  • 稳赚导师免费赚钱微信号老鬼seo
  • 网站开发去哪里找程序员大连互联网公司排名
  • 网站建设监理网站四对联广告代码
  • 电子商务网站名称西安市建设局官方网站
  • 晋州 网站建设 网络推广建设微信网站需要服务器
  • 内部券网站怎么做深圳网站建设公司有哪些
  • 临翔网站建设给个网址2021年能用的
  • 网站建设的条件怎么做无货源网店
  • 专业网站建设品牌个人开公司需要多少注册资金