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

深圳全网营销型网站网络营销案例小故事分享

深圳全网营销型网站,网络营销案例小故事分享,简易的网站建设,湛江城乡建设局网站以下为Vue2的解决方案 一、 Vue.set#xff08;#xff09; 问#xff1a;什么情况下使用#xff1f; 答#xff1a;如果你向响应式数据添加新的“属性”#xff0c;理论上#xff0c;一般情况下是没问题的#xff0c;但是#xff0c;如果你的级别比较深#xff0c;又… 以下为Vue2的解决方案 一、 Vue.set 问什么情况下使用 答如果你向响应式数据添加新的“属性”理论上一般情况下是没问题的但是如果你的级别比较深又或者“属性”添加上去后视图没有拿到的情况下可以使用该方法。 官方地址https://v2.cn.vuejs.org/v2/api/#Vue-set Vue.set( target, propertyName/index, value ) //示例 Vue.set(this.demolist[0], weight, 50kg)//等同于 this.demolist[0].weight50kg; 参数 {Object | Array} target {string | number} propertyName/index {any} value 返回值 设置的值。 用法 向响应式对象中添加一个 property(属性)并确保这个新 property 同样是响应式的且触发视图更新。它必须用于向响应式对象上添加新 property因为 Vue 无法探测普通的新增 property (比如 this.myObject.newProperty hi) 注意对象不能是 Vue 实例或者 Vue 实例的根数据对象。 既然有设置set有没有删除呢 答有 Vue.delete( target, propertyName/index )//示例 Vue.set(this.demolist[0], weight) 深度理解  Vue 无法检测 property(属性) 的添加或移除。由于 Vue 会在初始化实例时对 property 执行 getter/setter 转化所以 property 必须在 data 对象上存在才能让 Vue 将它转换为响应式的。 例如 var vm new Vue({data:{a:1} })// vm.a 是响应式的vm.b 2 // vm.b 是非响应式的 对于已经创建的实例Vue 不允许动态添加根级别的响应式 property(属性) 。但是可以使用 Vue.set(object, propertyName, value) 方法向嵌套对象添加响应式 property。 例如对于 Vue.set(vm.someObject, b, 2) 您还可以使用 vm.$set 实例方法这也是全局 Vue.set 方法的别名 this.$set(this.someObject,b,2) 有时你可能需要为已有对象赋值多个新 property(属性) 比如使用 Object.assign() 或 _.extend()。但是这样添加到对象上的新 property 不会触发更新。在这种情况下你应该用原对象与要混合进去的对象的 property 一起创建一个新的对象。 // 代替 Object.assign(this.someObject, { a: 1, b: 2 }) this.someObject Object.assign({}, this.someObject, { a: 1, b: 2 }) 详细请看Vue2官方文档《深入响应式原理》 官方地址https://v2.cn.vuejs.org/v2/guide/reactivity.html  深入响应式原理 — Vue.js 二、nextTick() 2.1  Vue.nextTick() 问什么情况下使用 答 为了在数据变化之后等待 Vue 完成更新 DOM可以在数据变化之后立即使用 Vue.nextTick(callback)。这样回调函数将在 DOM 更新完成后被调用。 Vue.nextTick( [callback, context] ) 参数 {Function} [callback] {Object} [context] 用法 在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法获取更新后的 DOM。 // 修改数据 vm.msg Hello // DOM 还没有更新 Vue.nextTick(function () {// DOM 更新了 })// 作为一个 Promise 使用 (2.1.0 起新增详见接下来的提示) Vue.nextTick().then(function () {// DOM 更新了}) 2.1.0 起新增如果没有提供回调且在支持 Promise 的环境中则返回一个 Promise。请注意 Vue 不自带 Promise 的 polyfill所以如果你的目标浏览器不原生支持 Promise (IE你们都看我干嘛)你得自己提供 polyfill。 2.2  vm.$nextTick() vm.$nextTick([callback]) 参数 {Function} [callback] 用法 将回调延迟到下次 DOM 更新循环之后执行。在修改数据之后立即使用它然后等待 DOM 更新。它跟全局方法 Vue.nextTick 一样不同的是回调的 this 自动绑定到调用它的实例上。 new Vue({// ...methods: {// ...example: function () {// 修改数据this.message changed// DOM 还没有更新this.$nextTick(function () {// DOM 现在更新了// this 绑定到当前实例this.doSomethingElse()})}} }) 2.3 深度理解 可能你还没有注意到Vue 在更新 DOM 时是异步执行的。只要侦听到数据变化Vue 将开启一个队列并缓冲在同一事件循环中发生的所有数据变更。如果同一个 watcher 被多次触发只会被推入到队列中一次。这种在缓冲时去除重复数据对于避免不必要的计算和 DOM 操作是非常重要的。然后在下一个的事件循环“tick”中Vue 刷新队列并执行实际 (已去重的) 工作。Vue 在内部对异步队列尝试使用原生的 Promise.then、MutationObserver 和 setImmediate如果执行环境不支持则会采用 setTimeout(fn, 0) 代替。 例如当你设置 vm.someData new value该组件不会立即重新渲染。当刷新队列时组件会在下一个事件循环“tick”中更新。多数情况我们不需要关心这个过程但是如果你想基于更新后的 DOM 状态来做点什么这就可能会有些棘手。虽然 Vue.js 通常鼓励开发人员使用“数据驱动”的方式思考避免直接接触 DOM但是有时我们必须要这么做。为了在数据变化之后等待 Vue 完成更新 DOM可以在数据变化之后立即使用 Vue.nextTick(callback)。这样回调函数将在 DOM 更新完成后被调用。例如  div idexample{{message}}/div var vm new Vue({el: #example,data: {message: 123} }) vm.message new message // 更改数据 vm.$el.textContent new message // false Vue.nextTick(function () {vm.$el.textContent new message // true }) 在组件内使用 vm.$nextTick() 实例方法特别方便因为它不需要全局 Vue并且回调函数中的 this 将自动绑定到当前的 Vue 实例上 Vue.component(example, {template: span{{ message }}/span,data: function () {return {message: 未更新}},methods: {updateMessage: function () {this.message 已更新console.log(this.$el.textContent) // 未更新this.$nextTick(function () {console.log(this.$el.textContent) // 已更新})}} }) 因为 $nextTick() 返回一个 Promise 对象所以你可以使用新的 ES2017 async/await 语法完成相同的事情 methods: {updateMessage: async function () {this.message 已更新console.log(this.$el.textContent) // 未更新await this.$nextTick()console.log(this.$el.textContent) // 已更新} } 2.4 生命周期示意图  详细请看Vue2官方文档《异步更新队列》 官方地址https://v2.cn.vuejs.org/v2/guide/reactivity.html#异步更新队列 深入响应式原理 — Vue.js   三、强制更新vm.$forceUpdate() 迫使 Vue 实例重新渲染。注意它仅仅影响实例本身和插入插槽内容的子组件而不是所有子组件。 用法: this.$forceUpdate() 如果你发现你自己需要在 Vue 中做一次强制更新99.9% 的情况是你在某个地方做错了事。 你可能还没有留意到数组或对象的变更检测注意事项或者你可能依赖了一个未被 Vue 的响应式系统追踪的状态。 然而如果你已经做到了上述的事项仍然发现在极少数的情况下需要手动强制更新那么你可以通过 $forceUpdate 来做这件事。 详细请看Vue2官方文档《异步更新队列》 官方地址https://v2.cn.vuejs.org/v2/guide/components-edge-cases.html#强制更新 处理边界情况 — Vue.js
http://www.pierceye.com/news/187696/

相关文章:

  • 网站突然不收录了如何形容一个网站做的好
  • 怎么建网站教程视频做网站跟推广哪家公司好
  • 怎么做网站报告四平网站公司
  • 飞扬动力网站建设支付网站建设要求
  • 达美网站建设廊坊seo扣费
  • 好享购物官方网站购物网页制作与网站开发从入门到精通
  • 坪山网站建设哪家便宜系部网站建设研究方案
  • 如何备份网站上海的招聘网站有哪些
  • 企业门户网站建设流程蝶恋花直播app下载安装
  • 株洲网站建设推广报价seo基础知识培训视频
  • 漳州网站建设选博大不错php网站开发经理招聘
  • 分类网站建设黄陌陌网站怎么做
  • 做网站大概多钱互联网广告投放
  • 信通网站开发中心qq说说赞在线自助下单网站
  • 搭建网站步骤做电影网站需要什么条件
  • 您网站建设动漫设计与制作 学校
  • 利用模板如何制作网站泰安整站优化
  • 网站开发与网站建设网站上的聊天框怎么做的
  • 任务网站(做任务学技能的)开发公司宣传册
  • 织梦搭建商城网站高端网站建设深圳
  • 做网站排名优化的公司无需下载直接登录qq手机版
  • 网站不备案不能访问吗wordpress主题开发404页面
  • 工作总结个人总结自动app优化下载
  • 网站开发推荐书籍比较大的外贸网站
  • 上饶建设网站郑州网
  • 做淘宝客网站一定要备案吗没有网站域名备案
  • 用QQ群做网站排名慈溪网站制作哪家最好
  • 兴宁市网站建设手工艺品网站建设策划书
  • flash做网站导航网站品牌建设流程
  • 公司建设网站属于什么费用网站打模块