位置: IT常识 - 正文

vue3【计算属性与监听-详】(vue使用计算属性)

编辑:rootadmin
vue3【计算属性与监听-详】 一、计算属性--简写形式

推荐整理分享vue3【计算属性与监听-详】(vue使用计算属性),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue 计算属性,vue2计算属性,vue计算属性怎么用,vue3 计算属性,vue2计算属性,vue3 计算属性,vue计算属性怎么用,vue3.0 计算属性,内容如对您有帮助,希望把文章链接给更多的朋友!

需求:通过计算属性,计算一个人的全名。

<template> <h1>基本信息</h1> 姓:<input type="text" v-model="personInfo.firstName"> <hr> 名:<input type="text" v-model="personInfo.lastName"> <hr> <span>全名:{{fullName}}</span></template><script>import { ref, reactive,computed} from 'vue'export default { name: 'Demo', components: { }, setup() { // 数据 let personInfo = reactive({ firstName:'张', lastName:'三' }) // 计算属性 let fullName = computed(()=>{ return personInfo.firstName+'-'+personInfo.lastName }) // 返回一个对象(常用) return { personInfo, fullName } },}</script>

 

计算属性同样是传入一个回调函数 

>>>这时候有人问,我的全名不应该放在personInfo里面嘛,不应该单独列出来。

答:说的对,接下来我们看一下如何放入personInfo里面,并实现计算。

很简单,直接在personInfo身上追加一个属性fullName即可。因为personInfo是由reactive定义的,所以可以对它身上的属性随便增删改查,而且能确保都是响应式的

注意:上面的计算属性是简写形式(没有考虑计算属性被修改的情况) 

使用的时候,改成下面这样就ok了。 

 

 >>>问题来了,如果计算属性想被修改怎么办?

就像下面这样,,,

 此时我们去修改计算属性,控制台就会出现警告,提示,你这个计算属性是只读的

二、计算属性--完整形式 

 那么考虑计算属性的读和写的【完整写法】如下:

personInfo.fullName = computed({ // 读 get(){ return personInfo.firstName + '-' + personInfo.lastName }, // 写 set(value){ console.log(value) const name = value personInfo.firstName = name.split('-')[0] personInfo.lastName = name.split('-')[1] } })

此时当我们修改计算属性的值,属性的值也会跟着变化 

三、watch监听ref定义的数据

先看下vue2监听的简写写法及结果 

<template> <h1>当前求和为:{{sum}}</h1> <button @click="sum++">点我加1</button></template><script>import { ref, reactive, computed } from 'vue'export default { name: 'Demo', components: {}, // vue2监听写法 watch: { sum(newValue, oldValue) { console.log('sum的值变化了', newValue, oldValue) } }, setup() { let sum = ref(0) // 返回一个对象(常用) return { sum, } },}

 vue2的完整写法如下,可以设置immediate:true以及deep:true:

 

 好了,vue2回顾之后,我们看一下vue3的监听如何写。

注意:vue3是组合式api的写法,因此我们首先要引入watch,watch在这里是一个函数一个行为,因此他不需要通过接收,直接调用即可

----------------【监听ref单个数据 】------------------ 

 

 效果一样、

 

 ----------------【监听ref多个数据 】------------------ 

有人说,那我写2个监听不就好了----

答:说实话也行,就是代码冗余,方法过于笨拙,哈哈

 效果是可以实现的,并且这种写法也只有vue3了,vue2里面还不能出现2个watch,哈哈

 

正确写法如下:

将监听的多个值写到一个数组里面,一起监听,当然newValue和oldValue也是同样以数组的形式表示值的变化

vue3【计算属性与监听-详】(vue使用计算属性)

 看下效果,我分别点了以下2次按钮,出现2个监听结果的打印

 注意:watch一共可以接收3个参数。

        第一个是监听的对象。

        第二个是回调函数。

        第三个当然是设置深度监听以及立即执行的地方啦!

这样写即可。 

  

 三、watch监听reactive定义的数据

 ----------------【监听reactive所定义的一个响应式数据的全部属性 】------------------ 

 

 发现监听reactive好像有个坑。

注意:监听reactive所定义的一个响应式数据,此处无法正确获取oldValue。

如果开发过程中确实需要用到oldValue,那建议单独用ref去定义,不要写在对象里面用reactive定义,这样无法正确获取

 这时候我们将reactive嵌套的深一点

         

 发现监听reactive的时候,嵌套的很深,会默认开启deep:true,可以直接监听到,也不能关闭。

总结:监听reactive所定义的一个响应式数据

        1、注意:此处无法正确获取oldValue

        2、注意:强制开启了深度监视(deep配置无效)

----------------【监听reactive所定义的一个响应式数据中的某个属性 】------------------ 

有人说我直接这样就好了呀。 

 

 看下结果行不行,貌似不行,有一个警告,告诉我们,只能监听一个ref、一个reactive对象、或者是这些属性的数组。所以我们这么写是不对的

 需要写成一个函数,去返回一个你想监听的属性

 ----------------【监听reactive所定义的一个响应式数据中的多个属性 】------------------ 

 写成数组就好了

 ----------------【特殊情况】------------------ 

此处由于监视的事reactive所定义的对象中的某个属性,所以deep配置有效 ,但是oldValue仍然无法正确获取、只要监听的是一个对象都无法正确获取

 四、watchEffect函数

 s

 使用方法:

 watchEffect是如何实现监听的呢?

他监听的是,回调函数里面用到谁就监听谁;没用到的不会触发监听,而且,他一上来就会调用一次,等价于加了immediate:true

 总结:

本文链接地址:https://www.jiuchutong.com/zhishi/295863.html 转载请保留说明!

上一篇:【类ChatGPT】本地CPU部署中文羊驼大模型LLaMA和Alpaca

下一篇:Bootstrap 框架详解(bootstrap框架的理解)

  • 快手怎么弄情侣空间(快手怎么弄情侣头像)

    快手怎么弄情侣空间(快手怎么弄情侣头像)

  • 微信号可以隐藏吗不想让好友看到(微信号可以隐藏手机号码吗)

    微信号可以隐藏吗不想让好友看到(微信号可以隐藏手机号码吗)

  • 苹果手机成黑白的怎么调回彩色(苹果手机成黑白模式怎么调回来)

    苹果手机成黑白的怎么调回彩色(苹果手机成黑白模式怎么调回来)

  • 伊对视频可以开美颜吗(伊对视频聊天怎么赚钱)

    伊对视频可以开美颜吗(伊对视频聊天怎么赚钱)

  • ipad下载显示未完成付款(ipad为什么下载了软件却显示未安装)

    ipad下载显示未完成付款(ipad为什么下载了软件却显示未安装)

  • 手机怎么把多个文件放在一个文件夹里(手机怎么把多个pdf文件合并成一个)

    手机怎么把多个文件放在一个文件夹里(手机怎么把多个pdf文件合并成一个)

  • 微信自启动关闭后还能收到消息吗(微信自启动关闭对微信有影响吗)

    微信自启动关闭后还能收到消息吗(微信自启动关闭对微信有影响吗)

  • 显卡为什么不用水冷(显卡为什么不用typec接口)

    显卡为什么不用水冷(显卡为什么不用typec接口)

  • vivo手机无缘无故黑屏(vivo手机无缘无故没有声音)

    vivo手机无缘无故黑屏(vivo手机无缘无故没有声音)

  • 荣耀8x屏幕录制不见了(录屏功能怎么打开华为荣耀8x)

    荣耀8x屏幕录制不见了(录屏功能怎么打开华为荣耀8x)

  • 华为p30收不到短信(华为p30收不到短信验证码,回复出厂设置可以吗)

    华为p30收不到短信(华为p30收不到短信验证码,回复出厂设置可以吗)

  • 图片属于什么媒体(图片属于什么数据)

    图片属于什么媒体(图片属于什么数据)

  • 抖音被拉黑还能发私信对方收得到吗(抖音被拉黑还能关注对方吗?)

    抖音被拉黑还能发私信对方收得到吗(抖音被拉黑还能关注对方吗?)

  • 苹果手机wps怎么改字体大小(苹果手机wps怎么批量删除文件)

    苹果手机wps怎么改字体大小(苹果手机wps怎么批量删除文件)

  • pd快充什么接口(pd快充什么接口最好)

    pd快充什么接口(pd快充什么接口最好)

  • oppor11通话设置在哪里找(oppor11的通话设置在哪里设置)

    oppor11通话设置在哪里找(oppor11的通话设置在哪里设置)

  • 耳机插口坏了怎么办(耳机插口坏了怎么修复)

    耳机插口坏了怎么办(耳机插口坏了怎么修复)

  • 华为储存卡怎么使用(华为储存卡怎么储存东西)

    华为储存卡怎么使用(华为储存卡怎么储存东西)

  • 小米9喇叭只有一个响(小米9喇叭只有一个响另一个是干嘛用的)

    小米9喇叭只有一个响(小米9喇叭只有一个响另一个是干嘛用的)

  • Redmi K20 Pro重量是多少(红米k20 pro重量)

    Redmi K20 Pro重量是多少(红米k20 pro重量)

  • 华为p30pro无线充电怎么用啊(华为p30pro无线充电没反应)

    华为p30pro无线充电怎么用啊(华为p30pro无线充电没反应)

  • iphone6蓝牙信号修复(苹果6蓝牙信号不好)

    iphone6蓝牙信号修复(苹果6蓝牙信号不好)

  • 如何用腾讯电脑管家恢复文件(如何用腾讯电脑管家回复格式化U盘)

    如何用腾讯电脑管家恢复文件(如何用腾讯电脑管家回复格式化U盘)

  • discuz解决IE8 9 10 支付宝积分充值时,出现空白页的方法(ie8 ie8i)

    discuz解决IE8 9 10 支付宝积分充值时,出现空白页的方法(ie8 ie8i)

  • 支付外国公司费用要交税吗
  • 公司购买手机如何入账
  • 技术类服务行业用不用开外经证
  • 库存现金怎么登记账簿
  • 报账员是会计还是出纳
  • 小规模没有成本票企业所得税怎么办呀
  • 核定征收企业股权转让的税收
  • 增值税税控系统专用设备
  • 行政事业单位工资标准
  • 土地使用权入账价值
  • 专业合作社的业务范围
  • 每月交的社保什么时候到账
  • 普票和专票的税率分别是多少
  • 建筑公司一般纳税人增值税税率
  • 申报个税按计提工资还是实际发放
  • 专用发票购货清单怎么写
  • 补交前几年的进项发票
  • 归还法人前期垫付款项
  • 公司全额承担个税会计分录
  • 印花税不足1元 需要计提吗
  • 插上U盘电脑无法启动怎么回事
  • 汇算清缴专项附加扣除去年忘记填的能补填吗?
  • 代扣可以退款吗
  • 维保合同交印花税吗怎么交
  • win11镜像文件怎么复制到系统U盘
  • 劳务资质办理需要什么条件
  • 债务担保可以税前抵扣吗
  • 付款结算单范本
  • 待机最长的手机智能排行榜 2020
  • 固定资产抵账的增值税
  • uniapp route
  • web-inf lib
  • js鼠标键盘事件
  • 融资租入的办公楼
  • Python人脸识别智能考勤系统 (供源码,附报告)(可答疑,可调试)
  • 删除ont命令
  • php如何遍历二维数组
  • 无偿划转资产涉及产权转移应交税
  • 库存商品盘点表
  • 无偿转让股权印花税计税金额
  • 航天金税服务费280不交
  • 净现值与原始投资额现值
  • 企业注销后还有风险吗
  • 法人可以开个人票会怎么样
  • 往来款会计
  • pandas模块的主要特点
  • 国家税务总局关于营改增后土地增值税
  • 年初未分配利润在借方表示什么
  • 收到员工交来现金怎么入账
  • 开票资料需要哪些东西
  • 装修工程一般质保几年
  • SQLServer 2008 Merge语句的OUTPUT功能
  • sh sqlplus
  • 跨年增值税专用发票红字发票怎么开
  • 国际货运代理一个月大概有多少收入
  • mysql数据损坏修复方法
  • 小规模纳税人减按1%如何填报申报表
  • 核定征收和查账征收报税有区别吗
  • 待处理财产损溢借方是增还是减
  • 增值税进项税额抵扣期限最新
  • 速动比率特别高的原因
  • 企业如何建账做账
  • 使用权资产
  • sql中的存储过程
  • windows内存诊断是干什么的
  • iis w3svc
  • 你不知道的关于现代主义的故事
  • win8系统关机在哪
  • linux查内存信息
  • perl 特殊字符转义
  • perl匹配空行
  • jq拖拽div替换位置
  • python2.7和3.8
  • unity获取父节点
  • linux小技巧
  • pygame csdn
  • 从批准文号怎么区分国产还是进口
  • 河北省国家税务局电子税务局官网
  • 包角计算公式推导
  • 土地的几种类型
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设