位置: 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框架的理解)

  • 锁屏音乐播放器怎么关闭的呢(锁屏音乐播放器 不见了)

    锁屏音乐播放器怎么关闭的呢(锁屏音乐播放器 不见了)

  • QQ访客的微视勋章如何关闭(qq访客的微视勋章是什么)

    QQ访客的微视勋章如何关闭(qq访客的微视勋章是什么)

  • 钉钉上如何看别人提交的作业(钉钉上如何看别人的手机号)

    钉钉上如何看别人提交的作业(钉钉上如何看别人的手机号)

  • 限量秒杀时用wifi还是4g(限时秒杀流量大吗)

    限量秒杀时用wifi还是4g(限时秒杀流量大吗)

  • 电脑wps文档墨迹功能在哪里(wps的墨迹在哪里)

    电脑wps文档墨迹功能在哪里(wps的墨迹在哪里)

  • 彩色相机什么时候有的(彩色相机什么时候发明的)

    彩色相机什么时候有的(彩色相机什么时候发明的)

  • 微信可以申请几个号(微信可以申请几次好友)

    微信可以申请几个号(微信可以申请几次好友)

  • 12306乘车人性别错了怎么办(铁路12306性别错了 怎么修改)

    12306乘车人性别错了怎么办(铁路12306性别错了 怎么修改)

  • 微信有hd版本吗(微信hd版本下载官网下载最新)

    微信有hd版本吗(微信hd版本下载官网下载最新)

  • 华为荣耀20lite是青春版吗(荣耀20lite百度百科)

    华为荣耀20lite是青春版吗(荣耀20lite百度百科)

  • 华为nfc功能手机有哪几款(华为nfc功能手机有什么作用?)

    华为nfc功能手机有哪几款(华为nfc功能手机有什么作用?)

  • 美团账号注销了多久能再注册(美团账号注销了订单找得回吗)

    美团账号注销了多久能再注册(美团账号注销了订单找得回吗)

  • accmeta_vod是什么文件夹(acdm是什么意思)

    accmeta_vod是什么文件夹(acdm是什么意思)

  • 升降摄像头手机有几款(升降摄像头手机为什么不出了)

    升降摄像头手机有几款(升降摄像头手机为什么不出了)

  • 华为手机有小爱同学功能吗(华为手机有小爱语音吗)

    华为手机有小爱同学功能吗(华为手机有小爱语音吗)

  • 华为手机振动怎么调大(华为手机振动怎么关?)

    华为手机振动怎么调大(华为手机振动怎么关?)

  • 电脑怎么输入@符号(电脑怎么输入大写字母)

    电脑怎么输入@符号(电脑怎么输入大写字母)

  • 苹果x为什么摸屏就亮(苹果x为什么一碰就亮)

    苹果x为什么摸屏就亮(苹果x为什么一碰就亮)

  • 微信备份到电脑打不开(微信备份到电脑的聊天记录怎么恢复)

    微信备份到电脑打不开(微信备份到电脑的聊天记录怎么恢复)

  • ps抠图插件(ps抠图插件ev)

    ps抠图插件(ps抠图插件ev)

  • 电脑文件一般存哪个盘(电脑文件一般存在c盘哪个文件夹)

    电脑文件一般存哪个盘(电脑文件一般存在c盘哪个文件夹)

  • 在win7系统中,电脑屏幕为什么闪?(在windows 7中)

    在win7系统中,电脑屏幕为什么闪?(在windows 7中)

  • hpzstatn.exe是什么进程 有什么作用 hpzstatn进程查询(hp是什么软件)

    hpzstatn.exe是什么进程 有什么作用 hpzstatn进程查询(hp是什么软件)

  • 本地存储(Local Storage) 和 会话存储(Session Storage)(本地存储localstorage没有拿到最新值)

    本地存储(Local Storage) 和 会话存储(Session Storage)(本地存储localstorage没有拿到最新值)

  • SpringSecurity入门(springsecurity有什么用)

    SpringSecurity入门(springsecurity有什么用)

  • 一般纳税人增值税怎么做账务处理
  • 核定征收需要缴税吗
  • 融资性售后回租印花税
  • 什么是增值税一般纳税人
  • 股票交易印花税降低
  • 不征税收入计入应纳税所得额吗
  • 个人代开资金占用费,如何计算代扣代缴个税
  • 购买办公用品属于会计对象吗
  • 建筑业差额纳税怎么算
  • 怎样根据税负率调账
  • 六种无形资产有什么
  • 企业注销其他应付款可以转入未分配利润吗
  • 2019劳务公司务怎么处理
  • 应收账款待转销和应交税费待转销
  • 境外投资子公司审计报告人民币汇率
  • 记账凭证日期填写哪一天
  • 货物发出未开票不确认收入
  • 其他货币资金贷方是增加还是减少
  • 工资低于3000要申报吗
  • 个体户到税务局开普票需要什么手续
  • 股票内在价值计算公式中级财务管理
  • 个人股权激励收入计入年度综合个人所得税吗
  • 小微企业按季度报送财务报表
  • 定额发票2019年规定
  • 劳务费开发票还要代扣代缴吗?
  • 会计记账凭证的填制
  • 应付的工资属于什么科目
  • 企业为员工购买社保缴费标准
  • 线上生活服务app有哪些
  • 房地产开发有限公司英文
  • 长期待摊费用账务处理包括哪两部分
  • 劳务公司的账务怎么做账
  • cmos是bios参数设置的
  • exe都打不开
  • 补缴增值税和滞纳税区别
  • 照片文件夹如何压缩
  • 电脑桌面调出键盘
  • lvgl使用
  • 预缴和清缴的会计科目
  • 税务安全证书不成功什么意思
  • vue中watch监听对象的变化
  • 企业所得税季度申报表A类
  • list集合过滤
  • flexbuffers
  • 房产税缴纳时间点
  • 中国男人百度百科
  • 发票作废是冲红吗
  • 交通运输企业有什么优惠政策
  • 控股公司的收入怎么计算
  • 工程分包需要注意什么
  • 企业其他业务收入要交税吗
  • 工装算劳保用品还是办公费
  • 职工釆暖费有何新政策
  • 员工报销停车费计入什么科目
  • 交易性金融资产包括哪些项目
  • 手机属于固定资产吗
  • 差旅费报销属于自制原始凭证吗
  • 通过T_sql语句向其中一次填入一条数据或一次填入多条数据的方式填充数据
  • sqlserver日期计算年龄
  • xp系统 控制面板
  • web软件安装
  • linux oracle12c
  • centos7.0安装网卡驱动
  • psdrvcheck.exe - psdrvcheck是什么进程 有什么用
  • win10 右下角
  • win7无法安装怎么办
  • win10预览版桌面图标和任务栏不翼而飞怎么办?
  • win10 ug
  • js自动生成序号
  • shell遍历sql查询结果
  • 一块钱买的鱼多久换一次水
  • u3d地形编辑贴图
  • jquery自动点击按钮
  • htmlcssjavascript入门经典pdf
  • python基于django的项目
  • js判断手机访问还是电脑访问
  • 福建闽江人才服务中心可靠吗
  • 2021沈阳车船税
  • 平安车险如何开票报销
  • 税务报运维需要多长时间
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设