美文网首页
计算属性和侦听器

计算属性和侦听器

作者: greente_a | 来源:发表于2020-04-26 17:22 被阅读0次

    所有软件工程方面的优化离不开两方面——高内聚,低耦合。

    换句话说,任何框架的产生,主要目的有两点:

    1.Write less,do more.(少写多做)

    2.降低代码/模块之间的耦合(依赖程度)


    计算属性,现在我没弄明白是什么意思,但是应该又是攻城狮们为了解耦而想出的法子。但是这次,应该是第一点占主要地位。

    第一个例子,字符反转。

    点击即可反转

    有了Vue双向绑定能力的加持,看似也没什么毛病。方法被动态绑定在了<button>的onclick事件上,一切看起来都是那么的美好,嗯,至少看起来是的。

    我们假设这样一种情况,message的值不再是寥寥数语,而是扶摇直上,突破了万际。

    这样点击,然后反转一次的设定,貌似也还可以哦。。。

    那我们再加一个条件,至少有100个元素需要引用反转之后的值,难不成要做100次反转运算么。。。还有dom操作,这个超耗时的吧。。。

    JS引擎估计撑不住吧。。。

    可以预见,如果某个网页真的像这样设计,肯定响应速度是没有办法保证的,于是计算属性应运而生了。

    这是另一个例子,不过应用了计算属性。

    有同学要问了,这不是一样么。。。非也,计算属性是专门经过优化的,即计算属性是基于它们的响应式依赖进行缓存的。只在相关响应式依赖发生改变时它们才会重新求值。白话就是,它只会在引用的data元素改变时算那么一次,之后的访问,如果data元素没有改变,则立即返回结果。实现方式是典型的“空间换时间”的思想,把需要重复计算的东东存下来就好了嘛~

    真开心!

    当然你要是不想缓存(比如系统内存开销大之类),还是用方法吧,毕竟高并发什么巴拉巴拉的也没那么容易遇到不是?

    那既然计算属性都叫属性了,能给它赋值么?

    能。

    默认计算属性是只有一个getter的,当然你也可以给它写一个setter。

    这样对fullName的操作也会映射回firstName和lastName属性。

    非常优雅。

    当然有些时候,我们还是需要一些实时监控元素的方法(类似于监听器)。

    HTML元素 引入一些外部js库

    它使用ajax库调用了一个API,可以回答只有是、否两种选项的问题。

    相关文章

      网友评论

          本文标题:计算属性和侦听器

          本文链接:https://www.haomeiwen.com/subject/dgrjwhtx.html