千家信息网

Vue中怎么使用计算属性

发表于:2025-11-18 作者:千家信息网编辑
千家信息网最后更新 2025年11月18日,这期内容当中小编将会给大家带来有关Vue中怎么使用计算属性,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。下面带大家了解一下Vue计算属性,介绍一下Vue计算属性的基
千家信息网最后更新 2025年11月18日Vue中怎么使用计算属性

这期内容当中小编将会给大家带来有关Vue中怎么使用计算属性,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

下面带大家了解一下Vue计算属性,介绍一下Vue计算属性的基础用法。

计算属性

有些时候,我们在模板中放入了过多的逻辑,从而导致模板过重,且难以维护。例如:

{{ message.split('').reverse().join('') }}

碰到这样的情况,我们必须看一段时间才能意识到,这里是想要显示变量message的翻转字符串,而且,一旦我们想要在模板中多次使用翻转字符串时,会更加麻烦。 所以,当我们处理复杂逻辑时,都应该使用计算属性。

基础用法

计算属性是Vue配置对象中的属性,使用方式如下:

{{ someComputed }}
const vm = new Vue({ el: '#app', computed: { // 返回的值,就是计算属性的值 someComputed () { return 'some values' } }})

例如,我们想要获取到一串字符串的翻转字符串,我们可以利用计算属性来做:

原始字符串: "{{ msg }}"

翻转字符处啊: "{{ reversedMsg }}"

const vm = new Vue({ el: '#app', data: { msg: 'Hello' }, computed: { reversedMsg: function () { return this.msg.split('').reverse().join(''); } }})

我们可以看到,reversedMsg的值取决于msg的值,所以,当我们更改msg的值是,reversedMsg的值也会随之更改。

计算属性 vs 方法

其实,我们上述的功能,利用方法也可以实现,如:

原始字符串: "{{ msg }}"

翻转字符串: "{{ reversedMsg() }}"

const vm = new Vue({ el: '#app', data: { msg: 'Hello' }, methods: { reversedMsg: function () { return this.msg.split('').reverse().join(''); } }})

虽然在表达式中调用方法也可以实现同样的效果,但是使用计算属性和使用方法有着本质的区别。 当使用方法时,每一次页面重新渲染,对应的方法都会重新执行一次,如:

{{ name }}

{{ reversedMsg() }}

const vm = new Vue({ el: '#app', data: { msg: 'Hello', name: 'shanshan' }, methods: { reversedMsg: function () { console.log('方法执行啦'); return this.msg.split('').reverse().join(''); } }})vm.name = 'duyi';

在上面的例子中我们可以看到,一旦更改name的值,页面会重新渲染,此刻控制台中打印出方法执行啦这串字符串,代表着reversedMsg这个函数执行了,但是我们并不需要该方法执行,因为改动的数据和这个函数没有任何关系,如果这个函数内的逻辑很复杂,那么对于性能来讲,也是一种消耗。

但是利用计算属性做,就不会有这样的现象出现,如:

const vm = new Vue({  el: '#app',  data: {    msg: 'Hello',    name: 'shanshan'  },  computed: {    reversedMsg: function () {      console.log('计算执行啦');      return this.msg.split('').reverse().join('');    }  }})vm.name = 'duyi';

此时可以看到,当给数据name重新赋值时,计算属性并没有执行。 所以,计算属性和方法的最本质的区别,是:计算属性是基于响应式依赖进行缓存的,计算属性的值一直存于缓存中,只要它依赖的data数据不改变,每次访问计算属性,都会立刻返回缓存的结果,而不是再次执行函数。而方法则是每次触发重新渲染,调用方法将总会再次执行函数。

那么,为什么需要缓存呢?

假如说,我们有一个计算属性A,它需要遍历一个巨大的数组并且做巨大的计算。然后我们需要使用到这个计算属性A,如果没有缓存,我们就会再次执行A的函数,这样性能开销就变得很大了。

深入计算属性

计算属性除了写成一个函数之外,还可以写成一个对象,对象内有两个属性,getter&setter,这两个属性皆为函数,写法如下:

const vm = new Vue({  el: '#app',  computed: {    fullName: {      getter () {         // 一些代码      },      setter () {         // 一些代码      }    }  }})

getter 读取

在前面,我们直接将计算属性写成了一个函数,这个函数即为getter函数。也就是说,计算属性默认只有getter。 getter的this,被自动绑定为Vue实例。

何时执行?

当我们去获取某一个计算属性时,就会执行get函数。

const vm = new Vue({  el: '#app',  data: {    msg: 'Hello'  },  computed: {    reversedMsg: {      getter () {        return this.msg.split('').reverse().join('');      }    }  }})

setter 设置

可选,set函数在给计算属性重新赋值时会执行。 参数:为被重新设置的值。 setter的this,被自动绑定为Vue实例。

const vm = new Vue({  el: '#app',  data: {    msg: 'Hello',    firstStr: ''  },  computed: {    reversedMsg: {      getter () {        return this.msg.split('').reverse().join('');      },      setter (newVal) {        this.firstStr = newVal[0];      }    }  }})

要注意,即使给计算属性赋了值,计算属性也不会改变,在重复一遍,只有当依赖的响应式属性变化了,计算属性才会重新计算。

练习_姓名筛选

personArr: [  {     name: '',     src: '.jpg',     des: '颈椎不好',     sex: 'm',     id: '056482'   },  {     name: '',     src: '.jpg',     des: '我是谁',     sex: 'f',     id: '157894'   },  {     name: '',     src: '.jpg', des: '我长得很好看',     sex: 'f',     id: '2849245'   },  {     name: '',     src: '.jpeg',     des: '你没有见过陌生的脸',     sex: 'm',     id: '348515'   },  {     name: '',     src: '.jpeg',     des: '瓜皮刘',     sex: 'm',     id: '478454'  }]

练习_全选商品

courseList: [  {    poster: '.jpg',    title: '',    price: 1299,    cart: 1,    id: 0  },  {    poster: '.jpg',    title: '',    price: 1148,    cart: 1,    id: 1595402664708  },  {    poster: '.jpg',    title: '',    price: 1,    cart: 1,    id: 1596305473062  },  {    poster: '.jpg',    title: '',    price: 1,    cart: 1,    id: 1595413512182  },  {    poster: '.jpg',    title: '',    price: 12798,    cart: 1,    id: 1596302161181  },  {    poster: '.jpg',    title: '',    price: 1,    cart: 1,    id: 1596300025301,  },]

上述就是小编为大家分享的Vue中怎么使用计算属性了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

属性 函数 方法 字符 字符串 缓存 再次 对象 数据 模板 逻辑 原始 复杂 巨大 两个 代码 使用方法 内容 只有 基础 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全行业规模占比 服务器为什么不需要高端显卡 温州网络安全工程师招聘 张家港软件开发公司哪个最好 用普通主板做服务器 税控软件访问数据库错误 富文本里面数据用什么数据库 zbbz服务器返回错误怎么解决 虚拟专用网络技术应用 职中网络技术有用吗 常见网络安全技术原理 360网络安全科技有限公司 服务器电源输入抗干扰电感电路 网络安全论文目录书店 战网俄罗斯服务器怎么买游戏 PUBMED数据库技术分析 江夏好的软件开发方案 一直免费的服务器www. 数据库系统中的常见故障有那些 网络技术企业所得税 山东定制安卓软件开发 开源数据库安全架构 互联网科技在职研究生 起名网络安全 金山区即时网络技术五星服务 怎么区分数据库 局平台使用网络安全管理制度 网络安全证过期或不可信 刺激战场亚服服务器不能登录 国家网络安全检查多久结束
0