vue子组件监听父组件数据

陈孙
• 阅读 8129

son.vue使用watch监听props数据,当props传递过来的值不能直接使用的时候,就可以使用computed(计算属性)了

父组件:
father.vue

<template>
<div>
<son :url="link_url"></son>
</div>
</template>

<script>
import son from "@/components/son"
export default {
  data(){
      return{
          link_url:'',
      }
  },
  
  ...
  ...
}
<script>

子组件:
son.vue

<template>
<div>
...
...
</div>
</template>

<script>
export default {
  data(){
      return{
          switchData:this.vid
      }
  },
  props: {
      url:{
          type:String
      }

  },
  computed:{
      switchData:function(){
          return this.switchData
      }
      
  },
 watch: {
  link_url(newV, oldV){//
         // do something, 可使用this
         **this.switchData**=newV
        console.log(newV,oldV)
  }
  /**link_url:{ //深度监听,可监听到对象、数组的变化
      handler (newV, oldV) {
        // do something, 可使用this
        console.log(newV,oldV)
      },
      deep:true
     }**/
},
  ...
  ...
}
<script>

拓展:如果需要开启首次赋值监听,如下

 link_url:{ //深度监听,可监听到对象、数组的变化
      handler (newV, oldV) {
        // do something, 可使用this
        console.log(newV,oldV)
      },
      deep:true,
      immediate: true,// 该回调将会在侦听开始之后被立即调用
     }
点赞
收藏
评论区
推荐文章
Alex799 Alex799
4年前
vue最新面试题
最近在面试,总结几个重点的面试题:一、vue父子组件之间的传值:简单来说,子组件通过props方法接受父组件传来的值,子组件通过$emit方法来向父组件发送数据。(具体案例可以看我之前写的博客)。二、vue生命周期函数:beforeCreatecreatedbeforeMountmountedbeforeUpdateupdatedbeforeDestr
Chase620 Chase620
4年前
vue的8种通信方式
1.props/emit1.父组件向子组件传值下面通过一个例子说明父组件如何向子组件传递数据:在子组件article.vue中如何获取父组件section.vue中的数据articles:\'红楼梦','西游记','三国演义'\//section父组件<template<divclass"section"
Souleigh ✨ Souleigh ✨
4年前
React 组件间通信的10种方法
组件间通信方式总结父组件子组件:1.Props2.InstanceMethods子组件父组件:1.CallbackFunctions2.EventBubbling兄弟组件之间:1.ParentComponent不太相关的组件之间:1.Context2.Portals3.Global
Easter79 Easter79
3年前
Vue 组件实现数据双向绑定(el
一、组件vmodel值通过props传入,必须定义为value!(https://oscimg.oschina.net/oscnet/66e6fa03cb5d23a24fd7d45e5e782b125ec.png)二、将传入的value在data中重新定义赋值,以便子组件改变值(子组件中不能直接修改props
爱丽丝13 爱丽丝13
4年前
React 组件通信之发布订阅模式
React通信react的数据流是单向的,react通信有以下几种方式:父向子通信:传入props子向父通信:父组件向子组件传一个函数,然后通过这个函数的回调,拿到子组件传过来的值父向孙通信:利用context传值。React.createContext()兄弟间通信:​1、找一个相同的父组件,既可以用pr
Dax Dax
3年前
Vue中计算属性和 watch的区别
通俗来讲,既能用computed实现又可以用watch监听来实现的功能,推荐用computed,重点在于computed的缓存功能computed计算属性是用来声明式的描述一个值依赖了其它的值,当所依赖的值或者变量改变时,计算属性也会跟着改变;watch监听的是已经在data中定义的变量,当该变量变化时,会触发watch中的方法;根据
Chase620 Chase620
4年前
Vue方向:prop验证
我们可以为组件的prop指定验证规则,如果传入的数据不符合要求,Vue会发出警告,这对于开发给他人使用的组件非常有用。要指定验证规则,需要用对象的形式来定义prop,而不能用字符串数组;1、验证父组件传递过来的数据类型props选项值如果为数据,则表示只是单纯的罗列父组件传递过来的数据而已如果props选项的值是一个对象,那么表示要验证接收的
Dax Dax
3年前
Vue父子组件
几种常见的通信方式:1、prop属性父组件通过绑定属性的方式,给子组件传值,同时子组件通过设置props来接收letChildVue.extend(template:'content',props:content:type:String,default:()r
Stella981 Stella981
3年前
React的单向数据流与组件间的沟通
今天来给大家总结下React的单向数据流与组件间的沟通。首先,我认为使用React的最大好处在于:功能组件化,遵守前端可维护的原则。先介绍单向数据流吧。React单向数据流:React是单向数据流,数据主要从父节点传递到子节点(通过props)。如果顶层(父级)的某个props改变了,React会重渲染所有的子节点。刚才我们提到了
Stella981 Stella981
3年前
FLutter父子组件通信
本文介绍flutter父子组件数据传递和回调.还是以之前的代码为例Flutter\_DayByDay(https://gitee.com/Royce_he/Flutter_DayByDay)由于之前用ReactNative写项目,顺便对比一下RN父组件直接在xml标签中写属性{值/方法},子组件通过props去取属性和方法
陈杨 陈杨
1个月前
鸿蒙5开发宝藏案例分享---应用性能优化指南
Column()Child(msg:this.message)//通过@Prop传递@ComponentstructChild@Propmsg:string;//子组件接收build()Text(this.msg)精准刷新监听:用@Watch监听数据变化,