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

电商网站平台建设方案爱站网长尾关键词挖掘工具下载

电商网站平台建设方案,爱站网长尾关键词挖掘工具下载,二次开发主题wordpress,大沥九江网站制作一、直接添加属性的问题 我们从一个例子开始 定义一个p标签#xff0c;通过v-for指令进行遍历 然后给botton标签绑定点击事件#xff0c;我们预期点击按钮时#xff0c;数据新增一个属性#xff0c;界面也 新增一行 p v-for(value,key) in item :key通过v-for指令进行遍历 然后给botton标签绑定点击事件我们预期点击按钮时数据新增一个属性界面也 新增一行 p v-for(value,key) in item :keykey{{ value }} /p button clickaddProperty动态添加新属性/button实例化一个vue实例定义data属性和methods方法 const app new Vue({el:#app,data:(){item:{oldProperty:旧属性}},methods:{addProperty(){this.items.newProperty 新属性 // 为items添加新属性console.log(this.items) // 输出带有newProperty的items}} })点击按钮发现结果不及预期数据虽然更新了console打印出了新属性但页面并没有更新 二、原理分析 为什么产生上面的情况呢 下面来分析一下 vue2是用过Object.defineProperty实现数据响应式 const obj {} Object.defineProperty(obj, foo, {get() {console.log(get foo:${val});return val},set(newVal) {if (newVal ! val) {console.log(set foo:${newVal});val newVal}}}) }当我们访问foo属性或者设置foo值的时候都能够触发setter与getter obj.foo obj.foo new但是我们为obj添加新属性的时候却无法触发事件属性的拦截 obj.bar 新属性原因是一开始obj的foo属性被设成了响应式数据而bar是后面新增的属性并没有通过Object.defineProperty设置成响应式数据 三、解决方案 Vue 不允许在已经创建的实例上动态添加新的响应式属性 若想实现数据与视图同步更新可采取下面三种解决方案 Vue.set()Object.assign()$forcecUpdated() Vue.set() Vue.set( target, propertyName/index, value ) 参数 {Object | Array} target{string | number} propertyName/index{any} value 返回值设置的值 通过Vue.set向响应式对象中添加一个property并确保这个新 property 同样是响应式的且触发视图更新 关于Vue.set源码省略了很多与本节不相关的代码 源码位置src\core\observer\index.js function set (target: Arrayany | Object, key: any, val: any): any {...defineReactive(ob.value, key, val)ob.dep.notify()return val }这里无非再次调用defineReactive方法实现新增属性的响应式 关于defineReactive方法内部还是通过Object.defineProperty实现属性拦截 大致代码如下 function defineReactive(obj, key, val) {Object.defineProperty(obj, key, {get() {console.log(get ${key}:${val});return val},set(newVal) {if (newVal ! val) {console.log(set ${key}:${newVal});val newVal}}}) }Object.assign() 直接使用Object.assign()添加到对象的新属性不会触发更新 应创建一个新的对象合并原对象和混入对象的属性 this.someObject Object.assign({},this.someObject,{newProperty1:1,newProperty2:2 ...})$forceUpdate 如果你发现你自己需要在 Vue 中做一次强制更新99.9% 的情况是你在某个地方做错了事 $forceUpdate迫使 Vue 实例重新渲染 PS仅仅影响实例本身和插入插槽内容的子组件而不是所有子组件。 小结 如果为对象添加少量的新属性可以直接采用Vue.set()如果需要为新对象添加大量的新属性则通过Object.assign()创建新对象如果你实在不知道怎么操作时可采取$forceUpdate()进行强制刷新 (不建议) PSvue3是用过proxy实现数据响应式的直接动态添加新属性仍可以实现数据响应式 可以直接采用Vue.set() 如果需要为新对象添加大量的新属性则通过Object.assign()创建新对象如果你实在不知道怎么操作时可采取$forceUpdate()进行强制刷新 (不建议) PSvue3是用过proxy实现数据响应式的直接动态添加新属性仍可以实现数据响应式
http://www.hkea.cn/news/14581837/

相关文章:

  • 重庆网站开发企业页面跳转请记住新域名
  • seo站内优化包括合肥租房网
  • 阿里巴巴国际站怎么做网站模版网站建设开发报告论文
  • 山东临沂网站推广怎么营销自己的产品
  • 贵阳建设工程招聘信息网站国外一个做ppt的网站
  • 河北建设机械协会网站网站建设公司 预算
  • 有做机械工装的网站吗网站代码在哪里看
  • 手机微网站怎么制作的vps centos wordpress
  • 易语言做网站登录东营城乡建设局官网
  • 玉门市住房和城乡建设局网站上海网站建设公司sky
  • 泰和网站制作成全视频免费高清观看在线韩剧
  • 周大福网站建设主要工作网站色彩策划
  • 为自己做的网站申请域名链接转换器
  • 湖南城乡建设部网站wordpress qq主题
  • 网站关键词建设wordpress怎么加js文件路径
  • 网站栏目定位中国储备粮管理集团有限公司
  • 除了淘宝还有哪些购物网站全国最大的外发加工网
  • 西安o2o网站设计公司枣庄网站优化
  • 网站建设专业名词sem是做什么的
  • 北京网站设计服务商桂林漓江风景区介绍
  • 网站建设最新教程门户网站建设汇报
  • 网站被镜像怎么做wordpress建的网站吗
  • 网站流量太高 如何做负载均衡深圳品牌vi设计
  • 瑞安做网站多少钱做网站副业
  • 做网站给韩国卖高仿兰州手机网站制作公司哪家好
  • 石河子市建设局网站辽宁省住房和城乡建设厅网站换了
  • 永久免费高配云服务器济南网站怎么做seo
  • 宁波建设协会网站广州网站建设学习
  • 织梦软件网站模板下载四大免费网站
  • 公司网站设计有哪些使用技巧呢企业网站的需求分析