首页 > 其他分享 >Vue3计算属性与监听

Vue3计算属性与监听

时间:2024-03-06 18:23:14浏览次数:30  
标签:Vue3 修改 计算 全名 fullname 写法 监听 属性

  接上篇文章 vue学习笔记 https://www.cnblogs.com/jickma/p/16523795.html

  在之前中介绍了vue3 的特性与响应式数据定义,新的双向绑定,模版等与vue2的差别。

  在vue2中很重要的两个很重要的东西就是 计算属性 与 监听

  在vue3中,同样存在只是写法略有不同。

5,计算属性

  在vue2中计算属性是与data 同级别,直接使用就可以,必须要有 return 值。

  在3中是需要从vue中引入到代码中然后在使用,也是需要有 return 值

  看写法

 1 <template>
 2   <div>姓:<input type="text" v-model="firstName"></div>
 3   <div>名:<input type="text" v-model="lastName"></div>
 4   <div>全名:{{ fullname }}</div>
 5   <div>全名:{{ fullname }}</div>
 6   <div>全名:{{ fullname }}</div>
 7   <div>全名:{{ fullname }}</div>
 8   <div>全名:{{ fullname }}</div>
 9 </template>
10 
11 <script lang="ts" setup name="person">
12 import {ref, computed } from 'vue'
13 let firstName = ref('张')
14 let lastName = ref('三')
15 let fullname = computed(() => {
16   console.log('测试打印几次');
17   return firstName.value + lastName.value
18 })
19 console.log(fullname, 'fullname');
20 </script>

  看输出,初始值为 张 与 三 ,全名调用了五次,但是输出只有一次,说明计算属性只调用了一次,

  可以看出,计算属性是带有缓存的,

  第一次计算出结果之后,后来再调用一看就是这个结果,所以说直接使用了缓存结果,并没有再次计算

  以上写法,计算属性是只读的,并不可以修改,如果说非要修改,则是另一种写法

  计算属性读取是通过 get 读取的,修改时候是通过set修改的,set里面是通过修改原始数据导致的结果修改的

  

 

   

  

  

 

标签:Vue3,修改,计算,全名,fullname,写法,监听,属性
From: https://www.cnblogs.com/jickma/p/18057128

相关文章

  • Cesium在vue3中的安装、使用
    1.cesium插件引入,vite-plugin-cesium是一个专门为Vite构建工具定制的插件,用于在Vite项目中轻松使用Cesium库。它简化了在Vite项目中集成Cesium的过程,并提供了一些额外的功能和配置选项。而直接安装Cesium库,你需要手动配置Vite项目以确保正确引入和使用Cesium。这......
  • springboot3+vue3(四.2)ThreadLocal优化
    解决痛点:我们在拦截器内已经获取并解析了一遍token数据,如图:然后在获取当前登录用户详细信息时又做了一遍同样的操作,如图:后续如果说需要用到当前登录用户的信息时都要带上token参数,这样是很冗余的。这时就会用到ThreadLocal来进行优化处理。 ThreadLocal工具类/***......
  • 解决element-ui的date-picker组件的picker-options属性不生效的问题
    网上查半天都没查到,好像没人写,于是俺怀着激动的心情来记录下项目来需求,说要控制日期选择的最大最小范围,看似简单,实则藏深坑!小白的我天真地按照网上的例子(主要是官网也不给一个!)写完如下:1.属性绑定 2.数据绑定(这步错了别抄) 错就错在第二步,它不应该绑定在data里吖,后经高人......
  • .NET6 + EF Core + MySQL 创建实体和数据库、EFCore 数据迁移、属性导航
    一、创建asp.netcoreweb(MVC)项目二、导包Microsoft.EntityFrameworkCore.DesignMicrosoft.EntifyFrameworkCore.ToolsPomelo.EntityFrameworkCore.MySql三、创建实例这里创建了两个实例namespacedemo.Models{publicclassSupplier{[DatabaseGe......
  • Vue3.0里为什么要用 Proxy API 替代 defineProperty API ?
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 一、Object.defineProperty定义:Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象为什么能实现响应式通过defineProperty 两个属性,get及setget属性......
  • Vite 2.0 + Vue3 + Ts + Vant3移动端项目
    highlight:androidstudioVite2.0搭建Vue3移动端项目一.涉及技术点vitevue3tsroutervuexaxiosvant3移动端适配请求代理二.步骤vite+ts+vue3只需要一行命令npminit@vitejs/appmy-vue-app--templatevue-ts初始化项目npminstallnpmrundev**......
  • 详细vite创建vue3项目(vue3+vue-router+ts+vite+element-plus+pinia)
    详细vite创建vue3项目(vue3+vue-router+ts+vite+element-plus+pinia):https://blog.csdn.net/qq_44423029/article/details/126378199?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170891147716800185818285%2522%252C%2522scm%2522%253A%252220140713.130102334..%2......
  • 【C++】【OpenCV-4.9.0】灰度图取反(Mat属性的使用)
    此次我们将一张图像转灰度后再进行灰度取反,即黑的变白的,白的变黑的,所以我们需要获取每个像素点上的灰度级,cv中提供了一个函数at,但是这个函数还有11个重载函数,太多了,我们只用这次需要用到的,即通过读取像素点的位置来获取灰度级。◆ at() [3/12]template<typename_Tp>c......
  • springframework BeanUtils 复制java对象属性值 copyProperties
    importorg.springframework.beans.BeanUtils;importorg.springframework.beans.BeanWrapper;importorg.springframework.beans.BeanWrapperImpl;importjava.beans.PropertyDescriptor;importjava.util.HashSet;importjava.util.Set;/***ObjectBeanUtils*......
  • vite+vue3 遇到报错 Uncaught SyntaxError: Cannot use import statement outside a m
    按照报错找到了对应的位置import{createApp}from'/node_modules/.vite/deps/vue.js?v=d0a669cf'importAppfrom'/src/pages/project1/App.vue'//import'./index.css'//importrouterfrom"./router"//createApp(App).mount(&#......