Vue3使用setup监听props实现方法详解
背景描述
子组件展示父组件传来的参数,展示的信息随着父组件上tab的切换动态更新。
一开始的想法是单独监听这个传递的参数,但看了VUE3的文档之后,似乎对参数的监听必须精确到属性。例如参数为
{ name: 'Doctor', gender: 'Timelord' }
需要在子组件的watch
中写明监听的是name
还是gender
。
该参数中有很多可能会改变的属性,一一监听过于麻烦。所以改变思路,使用监听props来获取所有所有传参。
实现方法
在父组件中,用于传递给子组件的参数必须为响应式(eg. reactive
),否则子组件在监听时不会监测到变换,watch永远不会生效
immediate
是立即开始监听,在页面首次渲染时可能为显示为undefined,如果watch的变化需要手动触发,不需要开启
deep
默认开启,可以忽略(参数为reactive,会默认开启deep,如果是ref,则不会默认开启deep)
// 父组件 <script> export default { setup() { let traveller = reactive({ name: 'Doctor', gender: 'Timelord' }) } } </script>
// 子组件 <script> export default { props: { traveller: { type: Object } } setup(props) { watch( props, (old, newProps) => { console.log('=======', newProps); //这里看到新值 }, // { // immediate: true, // deep: true // } ) } } </script>
以上就是Vue3使用setup监听props实现方法详解的详细内容,更多关于Vue3 setup监听props的资料请关注脚本之家其它相关文章!
相关文章
详解Vue的常用指令v-if, v-for, v-show,v-else, v-bind, v-on
Vue.js的指令是以v-开头的,它们作用于HTML元素,指令提供了一些特殊的特性。这篇文章主要介绍了Vue的常用指令v-if, v-for, v-show,v-else, v-bind, v-on 的相关知识,需要的朋友可以参考下2018-10-10vue封装全局弹窗警告组件this.$message.success问题
这篇文章主要介绍了vue封装全局弹窗警告组件this.$message.success问题,具有很的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2023-09-09vue项目实现一键网站换肤效果实例(webpack-theme-color-replacer的使用)
换皮肤一般都是点击一个按钮弹出一些皮肤的选项,选中选项后皮肤生效,下面这篇文章主要给大家介绍了关于vue项目实现一键网站换肤效果的相关资料,文中主要介绍的是webpack-theme-color-replacer的使用,需要的朋友可以参考下2023-02-02vue使用vue-video-player插件播放视频的步骤讲解
在最近的项目中有一个视频播放的功能,在之前的项目中没有接触过类似的功能,第一次接触,把具体操作步骤一下,这篇文章主要给大家介绍了关于vue使用vue-video-player插件播放视频的相关资料,需要的朋友可以参考下2022-12-12
最新评论