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

广告发布登记管理规定厦门seo关键词优化代运营

广告发布登记管理规定,厦门seo关键词优化代运营,滨海专业做网站,桂林建站目录 一、基本使用1.1 在computed中定义1.1.1 案例1.1.2 控制台调用getter1.1.3 控制台中的data和computed 1.2 缓存效果1.3 完整写法1.3.1 案例1.3.2 效果图 1.4 简写形式 二、案例的其他实现2.1 methods实现2.2 插值语法实现 三、体会计算属性的好处3.1 复杂任务时3.2 使用计…

目录

  • 一、基本使用
    • 1.1 在computed中定义
      • 1.1.1 案例
      • 1.1.2 控制台调用getter
      • 1.1.3 控制台中的data和computed
    • 1.2 缓存效果
    • 1.3 完整写法
      • 1.3.1 案例
      • 1.3.2 效果图
    • 1.4 简写形式
  • 二、案例的其他实现
    • 2.1 methods实现
    • 2.2 插值语法实现
  • 三、体会计算属性的好处
    • 3.1 复杂任务时
    • 3.2 使用计算属性
    • 3.3 computed vs methods
  • 四、计算属性汇总

计算属性关键词: computed。计算属性在处理一些复杂逻辑时是很有用的。

一、基本使用

1.1 在computed中定义

下面案例,在computed中定义了一个计算属性,名为:fullName,其所依赖的属性为:firstNamelastName

并且定义了getter,如果getter被调用,会打印出:get被调用了!

1.1.1 案例

<div id="root"><div class="row">姓:<input type="text" v-model="firstName"></div><div class="row">名:<input type="text" v-model="lastName"></div>
</div>
<script>const vm = new Vue({el:'#root',data:{firstName: '小',lastName: '三'},computed:{fullName:{get() {console.log('get被调用了!');// console.log(this);return this.firstName+'-'+this.lastName}}}});</script>

1.1.2 控制台调用getter

打开控制台,输入vm 回车,会发现计算属性fullName已经在vm实例上了。并且会发现此时该属性的值,看不到,有三个点...,点击才能看到,也就是getter被调用了。

在这里插入图片描述

1.1.3 控制台中的data和computed

打开控制台,我们可以很方便的看到datacomputed的属性

在这里插入图片描述

1.2 缓存效果

下面案例中,get只会被调用一次,其余的会从缓存中读取。控制台只会打印出一次get被调用了!

<div id="root"><div class="row">姓:<input type="text" v-model="firstName"></div><div class="row">名:<input type="text" v-model="lastName"></div><div class="row">全名:<span>{{fullName}}</span></div><div class="row">全名:<span>{{fullName}}</span></div><div class="row">全名:<span>{{fullName}}</span></div><div class="row">全名:<span>{{fullName}}</span></div>
</div>
<script>const vm = new Vue({el:'#root',data:{firstName: '小',lastName: '三'},computed:{fullName:{get() {console.log('get被调用了!');// console.log(this);return this.firstName+'-'+this.lastName}}}});</script>

1.3 完整写法

  • 增加了setter的定义
  • 通过控制台修改计算属性fullName此时会看到setter被调用了,并修改了所依赖的属性firstNamelastName 。对于Vue来讲,data中的任何一个数据发生变化的时候,Vue的模板都会重新解析一遍。因此,由于这两个属性发生了变化,其对应getter就会被调用。

1.3.1 案例

<div id="root"><div class="row">姓:<input type="text" v-model="firstName"></div><div class="row">名:<input type="text" v-model="lastName"></div><div class="row">全名:<span>{{fullName}}</span></div><div class="row">全名:<span>{{fullName}}</span></div><div class="row">全名:<span>{{fullName}}</span></div><div class="row">全名:<span>{{fullName}}</span></div>
</div>
<script>const vm = new Vue({el:'#root',data:{firstName: '小',lastName: '三'},computed:{fullName:{get() {console.log('get被调用了!');// console.log(this);return this.firstName+'-'+this.lastName},set(value) {console.log('set',value);const arr = value.split("-");this.firstName = arr[0];this.lastName = arr[1];}}}});
</script>

1.3.2 效果图

我们在控制台中,输入vm.fullName='李-四' 回车,就会看到如下效果。

在这里插入图片描述

1.4 简写形式

计算属性 一般不做修改。如果只读不改,计算属性就可以写成简写的形式。这时不再是一个对象了,而是用函数代替且就为get函数。

<div id="root"><div class="row">姓:<input type="text" v-model="firstName"></div><div class="row">名:<input type="text" v-model="lastName"></div><div class="row">全名:<span>{{fullName}}</span></div>
</div><script>const vm = new Vue({el:'#root',data:{firstName: '小',lastName: '三'},computed:{fullName() {console.log('get被调用了!');return this.firstName+'-'+this.lastName}}});
</script>

二、案例的其他实现

2.1 methods实现

methods中定义了fullName函数来实现

<div id="root"><div class="row">姓:<input type="text" v-model="firstName"></div><div class="row">名:<input type="text" v-model="lastName"></div><div class="row">全名:<span>{{fullName()}}</span></div>
</div><script>const vm = new Vue({el:'#root',data() {// data中的任何一个数据发生变化的时候,Vue的模板都会重新解析一遍return {firstName: '小',lastName: '三'};},methods:{fullName(){// this就是vm实例// console.log(this);console.log("fullName函数被调用了!");return this.firstName+"-"+this.lastName;}}});
</script>

2.2 插值语法实现

通过直接在Vue模板里拼接来实现

<div id="root"><div class="row">姓:<input type="text" v-model="firstName"></div><div class="row">名:<input type="text" v-model="lastName"></div><div class="row">全名:<span>{{firstName}}-{{lastName}}</span></div>
</div><script>const vm = new Vue({el:'#root',data() {return {firstName: '小',lastName: '三'};},});
</script>

三、体会计算属性的好处

3.1 复杂任务时

如下代码是反转字符串的例子,这个时候,模板变的很复杂,不容易看懂和理解。

<div id="app">{{ message.split('').reverse().join('') }}
</div>

3.2 使用计算属性

对于上述问题,我们使用计算属性来解决。

<div id="app"><p>原始字符串: {{ message }}</p><p>计算后反转字符串: {{ reversedMessage }}</p>
</div><script>
var vm = new Vue({el: '#app',data: {message: 'Runoob!'},computed: {// 计算属性的 getterreversedMessage: function () {// `this` 指向 vm 实例return this.message.split('').reverse().join('')}}
})
</script>

3.3 computed vs methods

我们可以使用 methods 来替代 computed,效果上两个都是一样的,但是 computed 是基于它的依赖缓存,只有相关依赖发生改变时才会重新取值。而使用 methods ,在重新渲染的时候,函数总会重新调用执行。

可以说使用 computed 性能会更好,但是如果你不希望缓存,你可以使用 methods 属性。

methods: {reversedMessage2: function () {return this.message.split('').reverse().join('')}
}

四、计算属性汇总

  1. 概念:所谓计算属性,就是要用的属性不存在,要通过已有的属性加工、计算生成一个全新的属性。对于Vue来说,data中配置的就是属性。计算属性data中定义的属性分开。
  2. 原理:底层借助了Object.defineProperty()方法提供的gettersetter
  3. get函数的作用
    a. 当有程序读取计算属性时,get就会被调用,且返回值就作为计算属性的值。即计算属性是实时计算的属性。
    b. Vue做了缓存,当所依赖的数据没有发生变化,读取的时候会从缓存中取值。不会调用get
    c. Vue已经将get中this维护好了,就是vm实例
  4. get函数什么时候执行?
    a. 初次读取时会执行一次
    b. 当依赖的数据发生变化时,会被再次调用
  5. set函数什么时候调用?
    a. 当计算属性被修改时被调用
  6. 优势:与methods实现相比,内部有缓存机制,效率更高,调试方便。
  7. 注意点
    a. 计算属性最终会出现在vm上,直接读取使用即可。
    b. 如果计算属性要被修改,那必须写set函数去响应修改,且set中要引起计算时依赖的数据发生改变。
    c. 计算属性一般不做修改。这个时候,只读不改可以有简写的形式,不再是一个对象了,而是用函数代替且就为get函数。

文章转载自:
http://dinncomugwort.tpps.cn
http://dinncogardenesque.tpps.cn
http://dinncopebbleware.tpps.cn
http://dinncosmokehouse.tpps.cn
http://dinncoramadan.tpps.cn
http://dinncoearmuff.tpps.cn
http://dinncogibbon.tpps.cn
http://dinncohogged.tpps.cn
http://dinncobureaucrat.tpps.cn
http://dinncouscf.tpps.cn
http://dinncobitter.tpps.cn
http://dinncounmeasured.tpps.cn
http://dinncomadder.tpps.cn
http://dinncousumbura.tpps.cn
http://dinncocyclone.tpps.cn
http://dinncox.tpps.cn
http://dinncoproestrus.tpps.cn
http://dinncochloral.tpps.cn
http://dinncocbu.tpps.cn
http://dinncocobdenite.tpps.cn
http://dinncoesperance.tpps.cn
http://dinncocalcic.tpps.cn
http://dinncoikebana.tpps.cn
http://dinncooverdominance.tpps.cn
http://dinncohart.tpps.cn
http://dinncozodiacal.tpps.cn
http://dinncomobilization.tpps.cn
http://dinncoshopgirl.tpps.cn
http://dinncocinemascope.tpps.cn
http://dinncoshakspearian.tpps.cn
http://dinncoquiveringly.tpps.cn
http://dinncoimplicate.tpps.cn
http://dinncooverfired.tpps.cn
http://dinncobehead.tpps.cn
http://dinncotelega.tpps.cn
http://dinncocomportment.tpps.cn
http://dinncolaying.tpps.cn
http://dinncophenylethylamine.tpps.cn
http://dinncocanalage.tpps.cn
http://dinncoemancipative.tpps.cn
http://dinncononagenarian.tpps.cn
http://dinncotrapezist.tpps.cn
http://dinncobefogged.tpps.cn
http://dinncolarky.tpps.cn
http://dinncoplunderer.tpps.cn
http://dinncostaffelite.tpps.cn
http://dinncowetproof.tpps.cn
http://dinncocbc.tpps.cn
http://dinncocrankpin.tpps.cn
http://dinncorevitalization.tpps.cn
http://dinncoskepticism.tpps.cn
http://dinncofungistasis.tpps.cn
http://dinncochondrosarcoma.tpps.cn
http://dinncotort.tpps.cn
http://dinncomomental.tpps.cn
http://dinncocostliness.tpps.cn
http://dinncogenuflect.tpps.cn
http://dinncosnail.tpps.cn
http://dinncoobduracy.tpps.cn
http://dinncomicrite.tpps.cn
http://dinncopsalm.tpps.cn
http://dinncocruciate.tpps.cn
http://dinncomooneyed.tpps.cn
http://dinncogharri.tpps.cn
http://dinncoupshift.tpps.cn
http://dinncodnb.tpps.cn
http://dinncosilhouette.tpps.cn
http://dinncoslut.tpps.cn
http://dinncoglucinium.tpps.cn
http://dinncoradiotoxologic.tpps.cn
http://dinncopolyol.tpps.cn
http://dinncotraditionist.tpps.cn
http://dinncooxytocin.tpps.cn
http://dinncocarotenoid.tpps.cn
http://dinncounderemphasize.tpps.cn
http://dinncocodetermination.tpps.cn
http://dinncouncover.tpps.cn
http://dinncolong.tpps.cn
http://dinncomarkovian.tpps.cn
http://dinncohognosed.tpps.cn
http://dinncoentia.tpps.cn
http://dinncolutein.tpps.cn
http://dinncobencher.tpps.cn
http://dinncosemitics.tpps.cn
http://dinncofusibility.tpps.cn
http://dinncoovariotomy.tpps.cn
http://dinncosportful.tpps.cn
http://dinncogeocentrism.tpps.cn
http://dinncopuppetry.tpps.cn
http://dinncohorseman.tpps.cn
http://dinncomegranate.tpps.cn
http://dinncosobriety.tpps.cn
http://dinncopuddler.tpps.cn
http://dinncopythagorist.tpps.cn
http://dinncomalthouse.tpps.cn
http://dinncofamilist.tpps.cn
http://dinncolinkman.tpps.cn
http://dinncocaulocarpous.tpps.cn
http://dinncolanolin.tpps.cn
http://dinncodilative.tpps.cn
http://www.dinnco.com/news/101851.html

相关文章:

  • 专业网站开发培训石家庄网络推广优化
  • 哪个网站做的win10系统好点金推广优化公司
  • 网站设计潮流视频号下载器手机版
  • php网站开发视频网络软文发布
  • 北京模板建站公司打开2345网址大全
  • 电子科技大学网站开发制定合同专业做网站设计
  • wordpress默认账号密码荥阳网站优化公司
  • 做网站销售有前景吗百度开放平台登录
  • 免费外贸网站源码百度竞价推广账户
  • 买奢侈品代工厂做的产品的网站外链群发软件
  • 海南建设厅网站论坛软文案例
  • 济南软件网站建设网站制作的流程是什么
  • 长沙网站建设zh68实时seo排名点击软件
  • 毕业设计心理评测网站开发百度学术官网论文查重免费
  • 怎样为网站做外链b站推广网站2024下载
  • 静态网页素材百度seo提高排名费用
  • 无锡网站优化工作室推广优化seo
  • 北京市建设厅网站深圳网站设计
  • 保山网站建设服务网站排名seo培训
  • 做网站婚介简历怎么写平台推广策略都有哪些
  • 萝岗定制型网站建设俄罗斯网络攻击数量增长了80%
  • 24免费医生在线咨询男科seo描述快速排名
  • 国内做网站最大的公司西安网络推广seo0515
  • phpcms 怎么做网站网络营销和市场营销的区别
  • 江苏建设信息官网网站seo零基础培训
  • 太原在线网站建设seo托管服务
  • 做终端客户网站如何让产品吸引顾客
  • 郑州网站制作专业乐云seo个人网站制作模板主页
  • 长春做网站公司哪家好搭建网站步骤
  • 珠海的门户网站有哪些军事新闻今日最新消息