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

Vue23的计算属性(computed)

Vue2&3的计算属性(computed)

Vue2的计算属性

  • 原理:data中的属性通过计算得到新的属性,称为计算属性(computed)。
  • computed 具有 getter 和 setter 属性
    • getter 属性在使用时分别有两次调用:
      • 第一次:初始化,初次访问该属性
      • 第二次:当 computed 中的数据发生变化时调用
    • setter 属性的调用:
      • 当 computed 属性被修改时调用
    • 注意事项:
      • setter 属性本身不会修改属性的值,只用于修改属性本身,而 computed 属性的值被修改并不会更新setter 属性的值。
      • getter 和 setter 属性不能使用箭头函数,箭头函数中的this不是指向vm,而是window。
  • computed 分别有两种写法:
    • 简写形式:computed : { 属性名(){ ...... } },不使用setter属性时,才能使用
    • 完整形式:computed : { 属性名 : { get(){ ...... }, set(value){ ...... } } }
// App.vue
<template>姓名:<input type="text" v-model="username"><br>反转:<input type="text" v-model="reversedName">
</template><script>export default {name : 'App',data(){return {username : ''}},computed : {// 完整写法reversedName : {get(){return this.username.split('').reverse().join('')},set(value){this.username = value.split('').reverse().join('')}}// 简写形式reversedName(){return this.username.split('').reverse().join('')}}}
</script>

Vue3的计算属性

  • Vue3的 computed 属性是一个组合式API,并且可以使用箭头函数
  • 使用前需要先引入:import { computed } from 'vue'
  • computed 属性的两种写法:
    • 简写形式:computed(() => { ...... }),不使用setter属性时,才能使用
    • 完整形式:computed({get(){ ...... }, set(value){ ...... }})
// App.vue
<template>姓名:<input type="text" v-model="user.name"><br>反转:<input type="text" v-model="reversedName">
</template><script>import { reactive, computed } from 'vue'export default {name : 'App',setup(){let user = reactive({name : ''})// 简写写法let reversedName = computed(() => {return user.name.split('').reverse().join('')})// 完整写法let reversedName = computed({get(){return user.name.split('').reverse().join('')},set(value){user.name = value.split('').reverse().join('')}})return {user, reversedName}}}
</script>
http://www.lryc.cn/news/233506.html

相关文章:

  • vue3中祖孙组件之间的通信provide和inject
  • 月影下的时光机:Python中的日期、时间、农历、节气和时区探秘
  • 【Bazel】Bazel 学习笔记
  • 2023年“华为杯”第二十届中国研究生数学建模成绩数据分析(末尾有吃席群)
  • Linux文件和文件夹命令详解
  • MIKE水动力笔记20_由dfs2网格文件提取dfs1断面序列文件
  • 微服务nacos实战入门
  • PyCharm 远程连接服务器并使用服务器的 Jupyter 环境
  • HBase中的数据表是如何用CHAT进行分区的?
  • rabbitMQ的direct模式的生产者与消费者使用案例
  • 分布式应用服务拆分
  • matplotlib 绘制双纵坐标轴图像
  • 74基于matlab的PSO-ELM的多输入,单输出结果预测,输出训练集和测试机预测结果及误差。
  • shell之head命令
  • 网络安全之了解安全托管服务(MSS)
  • linux进程间通信之共享内存(mmap,shm_open)
  • C/C++---------------LeetCode第1748.唯一元素的和
  • 什么是好用的HR人才测评?
  • 【ARM Trace32(劳特巴赫) 使用介绍 5 -- Trace32 scan dump 详细介绍】
  • Java版B/S架构云his医院信息管理系统源码(springboot框架)
  • 面试经典(2/150)移除元素
  • 基于JavaWeb+SpringBoot+掌上社区疫苗微信小程序系统的设计和实现
  • python_主动调用其他类的成员
  • Pytorch部分报错问题
  • cmmlu数据处理
  • 【ARM Trace32(劳特巴赫) 使用介绍 2.2 -- TRACE32 进阶命令之 DIAG 弹框命令】
  • 黑马程序员微服务 分布式搜索引擎3
  • Python正则表达式学习笔记(入门)
  • C++核心编程 day09 类型转换、异常、输入输出流
  • Docker安装PostgreSQL