首页 > 其他分享 >vue计算属性computed简单使用

vue计算属性computed简单使用

时间:2023-11-07 23:31:46浏览次数:38  
标签:vue computed get 计算 position 属性 name

computed的作用

computed用data中现有的属性计算出一个新的属性,叫做计算属性,计算属性和data中属性在{{}}写法和属性一样,例如计算属性name写为<div>{{name}}</div>


computed的定义位置

computed的定义位置和methods还有data为同级写法为computed: {}

<script>
export default {
  data() {
    return {
    }
  },
  computed: {},
  methods: {},
}
</script>

计算属性的属性名

计算属性的属性名需要写在computed中

计算属性的属性名里面有getter和setter函数


get的作用 现有的属性计算出新的计算属性来使用

get在初次使用计算属性的时候触发1次,后续直接读取计算属性的缓存,例如下列完整代码中name属性即使在模板上写入多个也只会触发一次get


但计算属性依赖的数据发生变化时get也会触发,例如下面完整代码中的计算属性name,如果platform或position属性的值被修改get就会触发

名称:<span>{{name}}</span>
名称:<span>{{name}}</span>
名称:<span>{{name}}</span>

set的作用 计算属性的时候必须写set函数去相应修改,且set中要引起计算时依赖的数据发生改变

set在计算属性被修改的时候触发

//完整代码
<template>
  <div>
    <div>
      平台:<input type="text" v-model="platform">
      职位:<input type="text" v-model="position">
      名称:<span>{{name}}</span>
    </div>
  </div>
</template>

<script>
export default {
  name: 'HelloWorld',
  data() {
    return {
      platform: '微信',
      position: '客服',
    }
  },
  computed: {
    name: {
      get() {
        return this.platform + this.position;
      },
      set(val) {
        console.log(val);
      }
    }
  }
}
</script>

get属性使用较多,set属性使用场景比较少


如果确定不会修改计算属性的值可以简化掉set,简写计算属性的函数

计算属性简写:get函数简写为:function() {}

  computed: {
    name: function {
        return this.platform + this.position;
    }
  }

计算属性再简写:get函数简写为计算属性名的函数

  computed: {
    name {
        return this.platform + this.position;
    }
  }

最后简写完后的代码

<template>
  <div>
    <div>
      平台:<input type="text" v-model="platform">
      职位:<input type="text" v-model="position">
      名称:<span>{{name}}</span>
    </div>
  </div>
</template>

<script>
export default {
  name: 'HelloWorld',
  data() {
    return {
      platform: '微信',
      position: '客服',
    }
  },
  computed: {
    name() {
      return this.platform + this.position;
    }
  }
}
</script>


标签:vue,computed,get,计算,position,属性,name
From: https://blog.51cto.com/u_15694202/8240731

相关文章

  • vue-test ------事件监听
    <template><h3>监听器</h3><p>{{message}}</p><button@click="updateHandle">点击</button></template><script>exportdefault{name:"WatchDemo",data(){return{mess......
  • vue-test -------style绑定
    <template><p:style="{color:activeColor,fontSize:fontsize+'px'}"></p></template><script>exportdefault{name:"StyleDemo",data(){return{activeColor:"green",......
  • Vue3 发送get 请求 携带数据
    exportfunctionTeam(data={}){returnservice.request({method:"get",url:"https://example.com/api/endpoint",//替换成实际的API端点params:{param1:data.param1,//根据传入的参数动态构建param2:data.param2}})......
  • vue-project-------(模板语法,属性绑定)
    <template><h3>模板语法</h3><p>{{msg}}</p><p>{{number+1}}</p><p>{{flag?'yes':'no'}}</p><p>{{message.split("").reverse().join("")}}</p>......
  • vue-test -----ListDemo 列表渲染
    <template><h3>数组</h3><button@click="addnums">添加数据</button><pv-for="(item,index)innums":key="index">{{item}}</p></template><script>exportdefault{name:......
  • vue-test ------class绑定
    <template><p:class="{'active':isActive}">Class样式绑定</p><p:class="Objec">Class样式绑定</p><p:class="[arrActive,arrHasErr]">Class样式绑定3</p><p:class="isActive......
  • vue-test --------事件修饰符
    <template><h3>事件修饰符</h3><a@click="clickHandle"href="www.baidu.com">百度</a><div@click="clickDiv"><p@click="clickP">测试冒泡</p></div></template&......
  • vue-test --------模板引用
    <template><inputtype="text"v-model.lazy="message"><div>{{message}}</div><inputtype="checkbox"v-model="flag"><div>{{flag}}</div></template><script......
  • vue-test --------ref
    <template><divref="contain">{{content}}</div><button@click="getElemet">获取元素</button><inputtype="text"ref="username"></template><script>exportdefault{......
  • 基于springboot+vue开发的教师工作量管理系
    教师工作量管理系springboot31摘要随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了教师工作量管理系统的开发全过程。通过分析教师工作量管理系统管理的不足,创建了一个计算机管理教师工作量管理系统的方案。文章介绍了教师工作量......