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

湖南网站建设seo沧州高速公路建设管理局网站

湖南网站建设seo,沧州高速公路建设管理局网站,seo外包公司费用,公司的网站推广费怎么做分录vue中的data与_data的关系是什么 -代理 在 Vue 实例中#xff0c;data 属性是用户定义的用于存储数据的对象#xff0c;而 _data 是 Vue 内部用于存储数据的对象。它们之间的关系是 Vue 实例的 data 属性实际上是对 _data 的代理。 当你在创建 Vue 实例时#xff0c;Vue 会…vue中的data与_data的关系是什么 -代理 在 Vue 实例中data 属性是用户定义的用于存储数据的对象而 _data 是 Vue 内部用于存储数据的对象。它们之间的关系是 Vue 实例的 data 属性实际上是对 _data 的代理。 当你在创建 Vue 实例时Vue 会将用户定义的 data 属性与内部的 _data 对象建立关联并在代理过程中添加一些访问和观察的逻辑。这样你在访问 Vue 实例中的数据时实际上是在访问 _data 中的数据。 下面是一个简单的示例 div idappp{{ message }}/p /divscript const app new Vue({el: #app,data: {message: Hello Vue!} });console.log(app._data.message); // 这里访问的是内部的 _data 对象的数据 /script在这个示例中app.data 是用户定义的数据而 app._data 是 Vue 内部存储数据的对象。message 属性实际上是通过代理从 app._data 中取得的。 需要注意的是直接访问 _data 不是 Vue 推荐的做法因为 Vue 提供了更高级的 API 来访问和操作数据如计算属性、观察属性等。直接操作 _data 可能绕过 Vue 的响应式系统导致数据不被正确地追踪和更新。 下面是一个实例直接修改数组中第一个元素对象的值。 !DOCTYPE html htmlheadmeta charsetUTF-8 /title更新时的一个问题/titlescript typetext/javascript src../js/vue.js/script/headbody!-- 准备好一个容器--div idrooth2人员列表/h2button clickupdateMei更新马冬梅的信息/buttonulli v-for(p,index) of persons :keyp.id{{p.name}}-{{p.age}}-{{p.sex}}/li/ul/divscript typetext/javascriptVue.config.productionTip falseconst vm new Vue({el:#root,data:{persons:[{id:001,name:马冬梅,age:30,sex:女},{id:002,name:周冬雨,age:31,sex:女},{id:003,name:周杰伦,age:18,sex:男},{id:004,name:温兆伦,age:19,sex:男}]},methods: {//注意vm是vue实例vm._data.student vm.student 原理vue的数据代理把vm中的属性代理到了_dataupdateMei(){// this.persons[0].name 马老师 //奏效// this.persons[0].age 50 //奏效// this.persons[0].sex 男 //奏效 // this.persons[0] {id:001,name:马老师,age:50,sex:男} //失效 Vue.set(this.persons, 0, {id:001,name:马老师,age:50,sex:男})//奏效this.persons.splice(0,1,{id:001,name:马老师,age:50,sex:男})//奏效}}}) /script /html上面案例直接修改数组的第一个元素会失效原因是Vue把data封装为_data时做了响应式处理(代理)给所有的属性都加了get和set,类似于Object.defineProperty 但是这里的直接通过索引整个赋值并不会做响应式处理不会把data数据代理到_data也就导致并不会实际修改_data也就是vue的实际数据除非使用Vue.set做响应式设值。 Vue在实现响应式数据时会使用一些特殊的技巧来监听对象的属性变化但这些技巧对数组的处理比较复杂。Vue能够检测到通过索引直接修改数组元素的情况因为Vue会拦截数组的变异方法例如 push、pop、shift、unshift、splice 和 sort从而能够在这些方法执行时触发视图更新。 然而直接通过索引赋值的方式修改数组元素this.persons[0] {id:001,name:马老师,age:50,sex:男}绕过了 Vue 的代理Vue 无法检测到这样的变化因此不会触发视图更新。 this.persons[0].name 马老师 这种方式可以生效的原因是因为name是vue实例的一个属性可以触发响应式代理的更新.也就是会触发vue实例身上为name属性添加的get与set。
http://www.ihoyoo.com/news/61605.html

相关文章:

  • 免费建设网站教程邯郸网站设计公司
  • 网站不备案行吗国外做饮料视频网站
  • 网站图片优化最专业的做网站公司
  • uc浏览器访问网站一个网站的后台
  • 云南专业网站建设用vs做网站的登录
  • 爱站工具查询如何做一个自己的网站
  • 哪个网站是做安全教育seo外贸仿牌网站换域名
  • 网站被镜像怎么办成都房地产上市公司有哪些
  • 手机摄影网站首页做设计找素材那个网站最好用
  • 东昌网站建设费用微商城怎么开发
  • 常熟网站制作找哪家好松江老城做网站
  • 下载网站程序园林专业设计学习网站
  • 本地生活网站建设免费个人网站注册
  • 网站数据报表网站平台建设是什么
  • 海南省建设注册中心网站网站建设管理属于职业资格吗
  • 网站内页标题城市建设灯具网站
  • 建设一个网站主要受哪些因素的影响会员登录wordpress
  • 自己免费做网站有什么用购物商城网站建设
  • 网站建设合同附加协议做网站生意买螃蟹
  • 大学生网站设计作品创建免费论坛的10个网站
  • 企业网站建设对网络营销有哪些影响工程机械网
  • 个人网站 百度收录wordpress 去掉版权
  • 长春网站建设模板制作北京网页设计机构
  • p网站建设二级域名需要备案吗
  • 做任务的网站有那些旅游类网站建设
  • 中力建设网站个人网站 建设
  • 建筑工程分为哪几类台州seo排名扣费
  • 做技术分享网站 盈利河南省公共资源交易中心
  • 网站服务内容怎么写北京平台网站建设报价
  • 如何做优秀的视频网站设计湛江做建站软仿