当前位置: 首页 > 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.hkea.cn/news/474667/

相关文章:

  • 福州网站制作有限公司南京疫情最新情况
  • 国外品牌设计网站天津疫情最新消息
  • 宁波有做网站的地方吗seo报价单
  • 深圳企业网站开发中国法律服务网app最新下载
  • 大连企业网站建站国外域名注册网站
  • 站长工具seo综合查询权重百度在线搜索
  • 伊犁网站建设评价怎样才能上百度
  • 房地产网站建设方案百度实名认证
  • 做外贸可以在哪些网站注册网络项目免费的资源网
  • 中国建设银行信用卡网站首页青岛关键词优化平台
  • 阿里云网站建设考试题目长沙网站推广服务公司
  • 甘肃建设项目审批权限网站俄罗斯搜索引擎yandex官网入口
  • 网站建设公司新员工培训ppt模板百度热门搜索排行榜
  • 仿魔客吧网站模板网址大全是ie浏览器吗
  • 网站产品后台界面怎么做湖南关键词排名推广
  • 网站数据每隔几秒切换怎么做的湖南百度seo排名点击软件
  • 网站制作先学什么百度新闻下载安装
  • 河南省网站建设哪家好免费观看行情软件网站进入
  • 粘合剂东莞网站建设体育热点新闻
  • 百度网站排名关键词整站优化培训网站建设
  • 网络平台代理seo外包 杭州
  • 东方头条网站源码免费推广软件工具
  • 北京网站建设公司分享网站改版注意事项流程优化四个方法
  • 案例学 网页设计与网站建设手机百度seo快速排名
  • 江门网站建设总部电话产品推广渠道有哪些
  • 网站建设全攻略站长之家ping检测
  • 导航网站 cmsgoogle chrome谷歌浏览器
  • wordpress看其他人博客优化师是做什么的
  • 现在哪个网站还做白拿2021小说排行榜百度风云榜
  • 网站流量seo提升seo排名的方法