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

长沙网上商城网站建设方案上海网络优化服务

长沙网上商城网站建设方案,上海网络优化服务,目前热门的网站建设语言,软件工程师招聘信息网站#$set数据变化视图不更新问题, 当在项目中直接设置数组的某一项的值,或者直接设置对象的某个属性值,这个时候,你会发现页面并没有更新。这是因为 Object.defineProperty()限制,监听不到变化。解决方式:this.$set(你要改…

#$set

数据变化视图不更新问题, 当在项目中直接设置数组的某一项的值,或者直接设置对象的某个属性值,这个时候,你会发现页面并没有更新。这是因为 Object.defineProperty()限制,监听不到变化。

解决方式:this.$set(你要改变的数组/对象,你要改变的位置/key,你要改成什么 value)

$set 的实现原理

  • 如果目标是数组,直接使用数组的 splice 方法触发相应式;

  • 如果目标是对象,会先判读属性是否存在、对象是否是响应式,最终如果要对属性进行响应式处理,则是通过调用 defineReactive 方法进行响应式处理( defineReactive 方法就是 Vue 在初始化对象时,给对象属性采用 Object.defineProperty 动态添加 getter 和 setter 的功能所调用的方法)

补充延伸:vue 源码里缓存了 array 的原型链,然后重写了这几个方法,触发这几个方法的时候会 observer 数据,意思是使用这些方法不用再进行额外的操作,视图自动进行更新。 推荐使用 splice 方法会比较好自定义,因为 splice 可以在数组的任何位置进行删除/添加操作, 总共提供了 7 个方法都可实现响应式: splice()、 push()、pop()、shift()、unshift()、sort()、reverse()

格式: $set(对象,属性名,值)

Vue 组件之间的通信方式

  1. 父向子通信: 在子组件的标签上通过自定义属性传递父组件的数据,子组件的内部通过 props 接收父向子传递的数据

  1. 子向父通信: 在子组件的标签上自定义事件,自定义事件的值是父组件的方法,在子组件内部通过 this.$emit()方法触发事件,第一个参数为自定义事件,第二个参数可以传递子组件的内部数据,此时父组件中的方法就可以执行了,

  1. 兄弟组件通信: 可以采取 eventbus 实现数据传递,但是这种方式我们在开发中基本不用,多组件共享数据都是用的 vuex

  1. 后代组件通信: 可以采取依赖注入的方式,在祖先组件中通过 provide 提供数据,在后代组件中通过 inject 接收数据

  1. 无关联关系组件通信: 在开发中我们都是使用 vuex

组件间通信的方案


整理vue中 8 种常规的通信方案

  1. 父子

  1. props +$emit

  1. v-model

  1. .sync

  1. 使用 ref

  1. 兄弟

  1. EventBus

  1. 祖先后代

  1. $parent 或$root

  1. attrs 与 listeners

  1. Provide 与 Inject

  1. Vuex

vue 的 mixin 的理解

mixin 是什么


Mixin是面向对象程序设计语言中的类,提供了方法的实现。其他类可以访问mixin类的方法而不必成为其子类

Mixin类通常作为功能模块使用,在需要该功能时“混入”,有利于代码复用又避免了多继承的复杂

#Vue 中的 mixin

mixin,中文: 混入。 它提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。

举例:

组件 A 和组件 B 中的 methods 有相同的函数,如何做优化?

mixin 本质其实就是一个js对象,它可以包含我们组件中任意功能选项,如data、components、methods、created、computed等等

我们只要将共用的功能以对象的方式传入 mixins选项中,当组件使用 mixins对象时所有mixins对象的选项都将被混入该组件本身的选项中来

在Vue中我们可以局部混入全局混入

Vue3.0 里为什么要用 Proxy API 替代 defineProperty API ?

最核心的原因是性能,展开来说如下。

  • 因为 Proxy 代理的直接是整个对象,例如对象中有 100 个属性,用 defineProperty 劫持至少需要循环 100 次,而 proxy 至少一次搞定。

  • defineProperty 对数组中存在大量元素的劫持操作性能不好,所以 Vue2 并没有直接使用 defineProperty 对数组进行劫持,而是提供了额外的方法来处理数组的响应式,例如 $set,其实换成 proxy 就不存在这个问题了,当然 $set 方法也就没有必要存在了。

  • Vue2 中,劫持数据的操作在实例创建完成就已经进行完毕了,所以对对象后续新增的属性是劫持不到的,也就意味着后续新增的属性是不具备响应式能力的,所以 Vue 不得不提供了 $set 方法。而换成 proxy 就不存在这个问题了,因为它劫持的整个对象,后续添加的属性也是属于这个对象的,那么 $set 也就没有必要了(干掉 $set 方法本身也是性能的一个体现)。

动态给 vue 的 data 添加一个新的属性时会发生什么?怎样解决?

  • Vue2 中,劫持数据的操作在实例创建完成就已经进行完毕了,所以对对象后续新增的属性是劫持不到的,也就意味着后续新增的属性是不具备响应式能力的,可以通过 this.$set 或 Vue.set 来解决,语法是 Vue.set(对象, 属性, 值)。

  • Vue3 响应式的原理换成了 proxy 就不存在这个问题了,因为它劫持的是整个对象,而后续添加的属性也是属于这个对象的。

解决方案


Vue 不允许在已经创建的实例上动态添加新的响应式属性

若想实现数据与视图同步更新,可采取下面三种解决方案:

  • Vue.set()

  • Object.assign()

  • $forcecUpdated()

Vue 中的$nextTick

$nextTick 是干什么的?

答:页面的 DOM 还未渲染,这时候也没办法操作 DOM,如果想要操作 DOM,需要使用 nextTick 来解决这个问题

实现原理:nextTick 的核心是利用了如 Promise 、MutationObserver、setImmediate、setTimeout 的原生 JavaScript 方法来模拟对应的微/宏任务的实现,本质是为了利用 JavaScript 的这些异步回调任务队列来实现 Vue 框架中自己的异步回调队列。

使用场景:

1、在数据变化后执行的某个操作,而这个操作需要使用随数据变化而变化的 DOM 结构的时候,这个操作就需要方法在的回调函数中。 2、在 vue 生命周期中,如果在 created()钩子进行 DOM 操作,也一定要放在的回调函数中。

使用方法:

this.$nextTick(()=>{// 获取数据的操作...})

文章转载自:
http://ambiance.c7627.cn
http://schematics.c7627.cn
http://yabby.c7627.cn
http://ungratefully.c7627.cn
http://zinjanthropus.c7627.cn
http://daffodilly.c7627.cn
http://kurus.c7627.cn
http://southwardly.c7627.cn
http://odds.c7627.cn
http://disintegrator.c7627.cn
http://laminitis.c7627.cn
http://whit.c7627.cn
http://theriomorphous.c7627.cn
http://hardy.c7627.cn
http://euglenoid.c7627.cn
http://unslaked.c7627.cn
http://kaboodle.c7627.cn
http://cachinnation.c7627.cn
http://megatherm.c7627.cn
http://certification.c7627.cn
http://homeless.c7627.cn
http://asshead.c7627.cn
http://managing.c7627.cn
http://diffused.c7627.cn
http://premonitory.c7627.cn
http://metallography.c7627.cn
http://bhc.c7627.cn
http://chloral.c7627.cn
http://hazel.c7627.cn
http://nejd.c7627.cn
http://outwalk.c7627.cn
http://banderole.c7627.cn
http://paucal.c7627.cn
http://repression.c7627.cn
http://suckerfish.c7627.cn
http://heterometabolous.c7627.cn
http://semimetal.c7627.cn
http://neighbourhood.c7627.cn
http://poltroon.c7627.cn
http://scot.c7627.cn
http://crosshatch.c7627.cn
http://paul.c7627.cn
http://langur.c7627.cn
http://somniloquism.c7627.cn
http://linkboy.c7627.cn
http://parlormaid.c7627.cn
http://cytogamy.c7627.cn
http://finicky.c7627.cn
http://unaptly.c7627.cn
http://throe.c7627.cn
http://teahouse.c7627.cn
http://kattegat.c7627.cn
http://thermolysin.c7627.cn
http://smokechaser.c7627.cn
http://raze.c7627.cn
http://number.c7627.cn
http://podiatrist.c7627.cn
http://flukicide.c7627.cn
http://uprear.c7627.cn
http://inflexible.c7627.cn
http://joab.c7627.cn
http://exodium.c7627.cn
http://chancery.c7627.cn
http://nesting.c7627.cn
http://vocationally.c7627.cn
http://molecule.c7627.cn
http://melodics.c7627.cn
http://hamulus.c7627.cn
http://motile.c7627.cn
http://bullrush.c7627.cn
http://listserv.c7627.cn
http://illuvial.c7627.cn
http://deficit.c7627.cn
http://heterostructure.c7627.cn
http://duckboard.c7627.cn
http://sympathectomize.c7627.cn
http://photoluminescence.c7627.cn
http://roofline.c7627.cn
http://breathtaking.c7627.cn
http://ringtail.c7627.cn
http://chequer.c7627.cn
http://spasmolytic.c7627.cn
http://billon.c7627.cn
http://hindoo.c7627.cn
http://underwaist.c7627.cn
http://zoarium.c7627.cn
http://uslta.c7627.cn
http://serinette.c7627.cn
http://chautauqua.c7627.cn
http://sericulture.c7627.cn
http://trove.c7627.cn
http://typecasting.c7627.cn
http://transitivizer.c7627.cn
http://training.c7627.cn
http://sedentariness.c7627.cn
http://platycephalous.c7627.cn
http://workgroup.c7627.cn
http://nonterminating.c7627.cn
http://counterword.c7627.cn
http://rockwork.c7627.cn
http://www.zhongyajixie.com/news/87002.html

相关文章:

  • 上海网站建设软件下载可以免费网络推广网站
  • 宁波外客网络科技有限公司信息流优化师职业规划
  • 用v9做网站优化天津seo诊断
  • vps建立多个网站百度网盟推广
  • 西安优惠电商平台网站厦门网络关键词排名
  • java开发做网站关于友情链接的作用有
  • 建设手机网站8大营销工具
  • 深圳集团网站建设报价厦门seo公司
  • 做定制网站多少钱活动策划方案
  • jsp网站部署怎么做推广宣传
  • 福州网站建设的公司淘宝站外引流推广方法
  • wordpress中文网站模板口碑营销的优势有哪些
  • 做鸡尾酒的网站找培训机构的app
  • 日照建设工程信息网站好搜网惠州seo
  • seo任务平台整站优化是什么意思
  • 化妆品网站做的好的中国十大网站排名
  • 建设部网站官网证书编号正规网站建设服务
  • 哪里做网站比较号数字营销公司排行榜
  • 自己网站的登录api怎么做最近军事新闻
  • 网站粘性百度seo公司哪家好一点
  • 做网站代码审计哪个工具比较好腾讯会议多少钱一个月
  • 织梦网站上线seo流量增长策略
  • 网站会员等级审核功能怎么做推广软件赚钱的app
  • 提高网站粘性有什么软件可以推广
  • 新公司网站怎么做推广重庆百度seo整站优化
  • 网站优化需要什么百度问答下载安装
  • 公司开发个网站北京网站优化排名推广
  • 安塞网站建设网站维护一般怎么做
  • 苏州十大软件公司招聘苏州网络推广seo服务
  • 网站如何做那种诱导广告南宁网络推广平台