首页 > 其他分享 >vue3如何监听 props 的变化?

vue3如何监听 props 的变化?

时间:2023-09-05 18:00:43浏览次数:42  
标签:val default props watch showBox vue3 监听

背景

实际开发过程中,当需要通过 watch 监听传入的 props 的某个值的变化,来动态改变组件内部的样式,实现方式如下:

export default {
  name: 'countdown',
  props: {
    showBox: {
      type: Boolean,
      required: true,
      default: false
    },
  },
  setup (props, { emit }) {
   // !!!此种方式不可监听到变化
    const showBox2 = toRef(props.showBox)
    watch(showBox2, (val) => {
      if (val) {
        // startCountdown()
      } else {
         // clearCountdown()
      }
    })
    // 下面方式可以监听到值改变
    watch(() => props.showBox, (val) => {
      if (val) {
        // startCountdown()
      } else {
        // clearCountdown()
      }
    })
  }
}

 

标签:val,default,props,watch,showBox,vue3,监听
From: https://www.cnblogs.com/beileixinqing/p/17680376.html

相关文章

  • vue3.0 el-table 动态合并单元格
    <el-tablev-resize:34style="margin:10px010px":data="tableData":header-cell-style="{background:'#F6F6F6',height:'10px','text-align':'center'}":......
  • Android实时监听网络状态
    Android实时监听网络状态(1) 其实手机在网络方面的的监听也比较重要,有时候我们必须实时监控这个程序的实时网络状态,android在网络断开与连接的时候都会发出广播,我们通过接收系统的广播就可以实现网络的监听。1、添加访问网络和获取网络状态的权限<uses-permissionandroid:name="and......
  • antd限制开始时间与结束时间范围是30天,并不能选择当前日期之后的日期 vue3(默认展示近7
    <a-range-picker:value="hackValue||dateArr":disabled-date="disabledDate"style="width:240px"separator="~":allow-cl......
  • Vue3带来的新变化
    Vue3带来的新变化性能提升首次渲染更快diff算法更快内存占用更少打包体积变小更好的Typescript支持CompositionAPI (重点)在使用vue2.x版本开发较复杂的组件时,逻辑难以复用,组合式api的出现可以解决此类问题相关阅读:Vue3中文文档 https://vue3js.cn/docs/zh/......
  • 从零开始一个vue3前端项目day04-头部导航篇
    在实际开发项目中通常会把头部导航栏写成一个通用组件,这里来具体说一下实现思路1:front-header组件就是我们的头部导航栏,路由我们已经配置好了,把每个导航的首页路径,配置成navList(包含name,path),这样就通过遍历navList就能写出一个首页导航组件 2:导航的选中状态实现,不仅仅是切......
  • 从壹开始前后端开发【.Net6+Vue3】(二)前端框架
    项目名称:KeepGoing(继续前进)介绍工作后,学习的脚步一直停停走走,希望可以以此项目为基础,可以不断的迫使自己不断的学习以及成长将以Girvs框架为基础,从壹开始二次开发一个前后端管理框架在这过程中一步步去学习使用到的技术点,也同时会将在此过程中遇到的问题进行分享项目地址......
  • vue3+ts Axios封装—重复请求拦截
    创建好vue3项目1.安装Axios与ElementPlusAxios安装npminstallaxiosElementPlus安装官网入口:https://element-plus.gitee.io/zh-CN/npminstallelement-plus--saveElement主要用到信息提示与全屏加载动画2.在src目录下创建api文件夹和utils文件夹api......
  • vue3+vite使用require引用图片失效问题
    首先,这个问题的原因跟vue无关,是vite引用只支持import,require是隔壁webpack的引用方式,vite用自身的url可以用import.meta.url来拼装项目路径,如下:这个原理只不过是在发布的地址上去找对应图片,而且只会找项目中public文件夹下的图片资源,assets文件夹下的图片资源找不到(原因是publ......
  • vue3 使用vue-router 进行网页跳转以及获取问号后面的参数
    关键代码:constrouter=useRouter()constauthor='myname'router.push({name:'Edit',query:{author}})constroute=useRoute()constvalue=route.query.key详细步骤:0.Initialgitclonehttps://github.com/element-plus/element-plus-v......
  • 判断对象是否发生变化,常用于监听页面表单是否修改并给出保存提示
    本文主要封装方法,实现用户离开表单编辑页面时弹出提示框,若表单数据发生变化,则提示用户是否保存当前页面的信息,如图: 封装方法:1/**2*比较俩个对象之间的差异,项目中多处用到监听表单数据是否改动,故封装此方法3*如果数据改动,则返回新旧对象记录改动字段的新旧值4......