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

computed计算属性

computed计算属性

前言

  • 首先我们先看一段非常简单的代码
<template><div class="person">: <input type="text"> <br>: <input type="text"> <br>全名:<P></P><br></div>
</template><script lang="ts" setup>
import { readConfigFile } from 'typescript';
import { ref } from 'vue';let firstName = ref('IT');
let lastName = ref('SHARE');</script>
  • 如果我想姓显示出来,我们可以使用v-bind
: <input type="text" :value="firstName"> <br>

在这里插入图片描述

  • 但是这样有一个缺点,就是这并不是双向绑定的,我们修改输入框中的IT,并不会同步到代码上

在这里插入图片描述

  • 所以想要双向绑定,我们可以使用v-model,这样当我们修改输入框的内容的时候代码也会立马进行修改;
: <input type="text" v-model="firstName"> <br>

在这里插入图片描述

  • 解决了双向数据绑定,那么我们想要全名显示出来就非常简单了
<template><div class="person">: <input type="text" v-model="firstName"> <br>: <input type="text" v-model="lastName"> <br>全名:<P>{{ firstName }} - {{ lastName }} </P><br></div>
</template>

在这里插入图片描述

  • 当我们进行修改的时候,页面上也会进行响应

在这里插入图片描述

computed计算属性

  • 这里我们也可以使用computed计算属性来实现这个目的
<template><div class="person">: <input type="text" v-model="firstName"> <br>: <input type="text" v-model="lastName"> <br>全名:<P>{{ fullName }} </P><br></div>
</template><script lang="ts" setup>
import { readConfigFile } from 'typescript';
import { computed, ref } from 'vue';let firstName = ref('IT');
let lastName = ref('SHARE');let fullName = computed(() => {return (firstName.value + lastName.value);
})</script><style scoped>.person{background-color: rgb(39, 148, 191);padding-left: 50px;}.btn {display: flex;gap:20px}
</style>

在这里插入图片描述

  • 但是这里的computed计算属性只是可读的,不可以修改

在这里插入图片描述

  • 想要解决的话,可以使用getter和setter,计算属性就可以实现双向绑定了
let fullName = computed({get(){ return (firstName.value + lastName.value)},set(newValue){[firstName.value,lastName.value] = newValue.split('-');}
})function changeFullname() {fullName.value = 'IT-知识一享'
}

在这里插入图片描述

总结

  1. computed计算属性可以使得我们模板中的代码更加的简洁,复杂逻辑的代码都在计算属性中
  2. 计算属性会基于其依赖的响应式数据自动缓存结果。只有当依赖发生变化时,才会重新计算。这可以避免不必要的重复计算,提高性能。(这个上面没有进行演示,当我们如果重复输入fullName的时候,你会发现它只会输出一次,因为计算属性是有缓存的);
  3. 可以通过getter和setter,实现计算属性的数据双向绑定;
http://www.dtcms.com/a/586586.html

相关文章:

  • 无锡做网站设计ui培训心得
  • 游戏“二开”:在巨人的肩膀上创造新世界
  • 网站 用户体验的重要性wordpress有多个页脚
  • 网站开发与数据库高端网站建设与发展
  • PyQt5 QMultiMap完全指南:深入理解Qt的多值映射容器
  • 公司想制作网站黄埔做网站
  • 大功率绿电制氢电源装置研究
  • 做电影网站用什么程序个人做免费网页
  • 网站开发两端对齐底行左对齐安庆做网站电话
  • linux wordpress配置已收录的网站不好优化
  • 怎么制作自己的网页网站首页直播视频怎么下载
  • 网站当电话线成都政务网站建设
  • 定制做网站报价个人网站官网
  • JavaEE初阶 --文件操作和IO
  • 虚拟机wordpress建站江西省建设工程有限公司
  • 如何免费注册自己的网站织梦网站怎么做优化
  • 软考高级考试过程
  • 优质的低价网站建设网站类型大全
  • 深圳设计网站培训学校网站接入地查询
  • 蓝牙应用层dbus接口
  • 基于SpringBoot的健身房管理系统【智能推荐算法+可视化统计】
  • 智能体颠覆教育行业:现状、应用与未来展望调研报告
  • 中国建筑设计作品网站阜阳网站建设专业机构
  • 海南七星彩网站开发算命网站做竞价赚钱
  • C4D缝纫和翻褶工具详解:布料模拟的关键技巧
  • 数据链路层概述
  • 下载网站建设网站源码下载pdf文件
  • 做报废厂房网站怎么做邵阳做网站哪个公司好
  • 成都知名网络营销公司seo网站管理
  • icp是网站备案个人网站建设概述