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

西安晨曦e动网站建设域名查询中心官网

西安晨曦e动网站建设,域名查询中心官网,加工平台制作,大冶seo网站优化排名推荐目录前言一#xff0c;ref和reactive的简单复习1.ref函数1.2 reactive函数1.3 用ref定义对象类型数据不用reactive二#xff0c;watch的value问题2.1 ref2.1.1 普通类型数据2.1.2 对象类型数据2.1.3 另一种方式2.2 reactive三#xff0c;总结后记前言 在Vue3中#xff0c;… 目录前言一ref和reactive的简单复习1.ref函数1.2 reactive函数1.3 用ref定义对象类型数据不用reactive二watch的value问题2.1 ref2.1.1 普通类型数据2.1.2 对象类型数据2.1.3 另一种方式2.2 reactive三总结后记前言 在Vue3中定义响应式数据有两种方式第一种是ref第二种是reactive。在使用监视属性的时候我们可能会监视普通类型的数据也就是ref定义的也可能会监视对象或者数组类型的数据。也就是reactive定义的当然也可以是ref定义的 之前在Vue2与Vue3响应式的详解与对比博客中介绍过ref和reactive的用法及区别以及为什么要用到value。本篇博客在此基础上阐述watch检测数据的时候要不要加value的这个问题。 一ref和reactive的简单复习 这一节是对ref和reactive的简单复习如果要深层次的学习以及知晓原理可以看上面那一篇链接博客。 1.ref函数 我们先来看一个ref定义的数据答应出来是个什么见下面代码 templatediv学校名称: {{ school }}/divbutton clickschool 家里蹲大学修改学校名称/button /templatescript import {ref, reactive, watch} from vue export default {name: App,setup() {let school ref(湖北师范大学)watch(school, (newValue, oldValue) {console.log(school被修改);console.log(school)})return {school}} } /script效果 可以看到最后得到的是一个RefImpt引入对象的实现对象的实例对象简称引用对象。使用时模板语法中可以省略value函数中需要使用value进行修改。 ref实现响应式的原理和Vue2中实现响应式的原理是一样的都是通过Object.defintProperty来实现的。 1.2 reactive函数 reactive函数用作对象及数组类型的数据。请看以下代码 templatediv学校名称{{ school }}/divbutton clickschool 家里蹲大学修改学校名称/buttondiv姓名: {{ person.name }}/divdiv工作名称: {{ person.job.type }}/divdiv工作薪水: {{ person.job.salary }}/divbutton clickperson.job.salary 100k修改薪水/button /templatescript import { ref, reactive, watch } from vue export default {name: App,setup() {let school ref(湖北师范大学)let person reactive({name: 巧克力小猫猿,job: {type: 前端开发工程师,salary: 90k}})watch(person, (newValue, oldValue) {console.log(person被更改)console.log(person)})return { school, person }} }效果 对于用reactive函数定义的对象类型的数据内部原理是检测Proxy实例对象。所以在书写是时候不需要value模板语法中也不需要value并且可以深度监视。 1.3 用ref定义对象类型数据不用reactive 如下面代码 templatediv学校名称{{ school }}/divbutton clickschool 家里蹲大学修改学校名称/buttondiv姓名: {{ person.name }}/divdiv工作名称: {{ person.job.type }}/divdiv工作薪水: {{ person.job.salary }}/divbutton clicklook点击查看person/button /templatescript import { ref, reactive, watch } from vue export default {name: App,setup() {let school ref(湖北师范大学)let person ref({name: 巧克力小猫猿,job: {type: 前端开发工程师,salary: 90k}})function look() {console.log(person)}return { school, person, look}} } /script效果如下: 可以看出如果ref遇到一个对象类型的数据类型会求助reactive。因为检测Proxy实例对象是由reactive来监测到。而reactive是深层次的所所以能够检测到Proxy内部的内容。 二watch的value问题 2.1 ref 首先遇到ref我们脑海中的原则是模板语法中不用valuejs中操作数据需要带上value。 在watch中先说结论如果要检测一个普通类型的数据不需要value。如果检测对象类型的数据需要加value 2.1.1 普通类型数据 先说普通类型数据我们现在以一个例子来说明如下代码 templatediv违规次数: {{ sum }}/divbutton clicksum违规次数加1/buttondiv姓名: {{ person.name }}/divdiv工作名称: {{ person.job.type }}/divdiv工作薪水: {{ person.job.salary }}/divbutton clickperson.job.salary 100k修改薪水/button /templatescript import { ref, reactive, watch } from vue export default {name: App,setup() {let sum ref(0)let person reactive({name: 巧克力小猫猿,job: {type: 前端开发工程师,salary: 90k}})//监视sumwatch(sum, (newValue, oldValue) {console.log(sum被检测了)console.log(sum)})return { person, sum}} } /script我们点击sum按钮后sum这个引用对象被监测了。 但是如果监测的是sum.value: 无法正常运行 原因sum加一后值为1我们监测的是sum的结构而不是1这个数字。所以在监视ref定义的普通类型数据时不用加value。 2.1.2 对象类型数据 再说ref定义的对象类型数据被监视的情况。请看下面代码 templatediv违规次数: {{ sum }}/divbutton clicksum违规次数加1/buttondiv姓名: {{ person.name }}/divdiv工作名称: {{ person.job.type }}/divdiv工作薪水: {{ person.job.salary }}/divbutton clickperson.job.salary 100k修改薪水/button /templatescript import { ref, reactive, watch } from vue export default {name: App,setup() {let sum ref(0)let person ref({name: 巧克力小猫猿,job: {type: 前端开发工程师,salary: 90k}})//监视sum// watch(sum.value, (newValue, oldValue) {// console.log(sum被检测了)// console.log(sum)// })//监视对象类型watch(person, (newValue, oldValue) {console.log(person被监视)console.log(person)})return { person, sum}} } /script当我改变薪水时候没办法正常运行。但是一旦我加上value 可以正常运行 因为对象类型的数据经过ref函数加工会变成引用对象而该对象的value是Proxy类型的。所以我们如果需要监视Proxy对象中的数据则需要监视的是person.value的结构。 2.1.3 另一种方式 经过了上面的讲解应该不难开出对象类型的数据之所以要加value是因为我们要监视的是对象中的Proxy对象中的属性。 那我们不妨开启watch的深度监视同样可以解决问题。 2.2 reactive reactive在监视的时候不需要value。前面复习过reactive会自动帮我们加上value。并且reactive是深度监视的。它可以窥视对象内部的对象。所以我们只需要监视Proxy对象即可。 三总结 1.watch中若监视的是普通类型的数据不可带value因为我们检测的是该数据的结构而不是数字。 2.监测ref函数加工的对象时需要加value因为使用ref来定义对象ref是需要求助reactive的因为reactive可以检测Proxy实例对象是深层次的。 3.检测ref函数加工的对象还有另一种方法那就是开启deep的深度监视。 4.监测reactive加工的对象时不需要value因为reactive是通过Proxy拦截对象中属性的变化。而且reactive的监测是深层次的。 不清楚的小伙伴可以去翻看前面的链接文章里面有详细的原理讲解。 后记 以上内容如果存在问题希望读者朋友批评指正 感谢您的阅读欢迎关注后续会带来更多深层次的内容
http://www.hkea.cn/news/14402713/

相关文章:

  • 中国工程建设工程造价管理协会网站单位做网站支出应怎么核算
  • 我要建立网站网站运营内容包含哪些
  • 网站建设浦东微博营销案例有哪些
  • 沈阳有多少网站外贸网站建设的重要性
  • 郑州专业建网站广州网站建设 易企建站
  • 精能集团有限公司两学一做网站英文网站模版
  • 外包公司做网站有哪些内容互联网排名前十的公司2021
  • 如何将公司网站做的更好看dw软件下载
  • 哈尔滨营销型网站建设公司北京app建设 网站开发公司
  • 台州高端网站建设土巴兔全包装修怎么样
  • 自学网站开发要多久企业邮箱注册去哪
  • 泰安中商网络做的网站怎么进入引流推广的方法
  • 阿勒泰高端网站建设公司网站以什么名字备案
  • 论坛网站怎么建设直播网站基础建设
  • 模板网站如何建站app软件下载免费
  • 怎么做百度里面自己的网站网站在只有域名了
  • mvc 门户网站开发框架贵州建设官方网站
  • 太原哪个网站制作最好用北京小程序 app开发公司
  • 旅行网站模板应用搭建平台
  • 网站开发3687474企鹅安徽省网站肥建设网站
  • 什么是flash网站陕西 网站建设
  • 企业门户网站建设内容网投怎么做网站
  • 在网站上做封面网站建设为什么要全款
  • 博达高校网站群建设教程弹性盒子做微网站
  • 有哪些好的响应式网站个人如何做网络推广
  • 广州建设银行分行招聘网站专业做招聘的网站
  • 自己怎么优化网站排名海南省住房和城乡建设厅网站电脑版
  • 厦门网上房地产网官方网站江苏苏州昨天出大事
  • 惠安县规划建设局网站网页搜索框下记录删不掉
  • 网站分类导航代码青岛房价