浅谈Vue 中的 computed 和 methods 的使用

computed:在computed中的函数,是在dom加载后马上执行的
methods:在methods中的函数,必须要有一定的触发条件,才会执行
Vue.js 将绑定表达式限制为一个表达式,如果想要实现绑定多于一个表达式的逻辑,应当使用计算属性

下面表格若要实现根据不同的角色,来显示表格中是否包含操作一列的效果,使用methods来实现逻辑的话,虽然能达到效果,但是页面加载时会有闪烁的问题,使用computed来实现逻辑,则不会出现闪烁问题。
在这里插入图片描述
在这里插入图片描述
Vue 的 computed

<!-- 表格 -->
<template>
      <Table 
        border 
        stripe 
        //在此调用了计算属性中的方法
        :columns="computeCol"     
        :data="TableData" 
      >
        <template slot-scope="{ row }" slot="action">
          <Button type="error" size="small" @click="tableDelect(row.id)"  icon="md-trash">删除</Button>
        </template>
      </Table>
</template>

<script>
  	computed: {
	    computeCol () {
	      let columns = this.columnsTable
	      if (this.nowUser.code !== 'ROLE_MANAGER') {
	        columns = columns.filter(col => col.key !== 'action')
	      }
	      return this.columnsTable = columns
	    }
  	}
</script>

在计算属性中,所有 getter(读取) 和 setter(设置) 的 this 上下文自动地绑定为 Vue 实例。计算属性的结果会被缓存,除非依赖的响应式属性变化才会重新计算。注意,如果某个依赖 (比如非响应式属性) 在该实例范畴之外,则计算属性是不会被更新的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值