Vue组件:$parent和$root


1.父组件把方法传递给了子组件




    
    
    Document
    


    

    你选择的学校是:{{chooseSchool}}

  1. changeEvent可以改变chooseSchool的值,不知道哪个子组件调用,也不知道子组件的值是多少?

  2. 我们在组件中定义一个方法!这个方法写在组件的methods里面。

   	
  1. 我们在methods方法调用参数里面的action,来把子组件数值传给父组件
  methods: {
     //把参数传给父组件
     chooseEvent: function (schoolName) {
     this.action(schoolName)
   }
  }
  1. 所以必须在参数列表props中定义一个action

    props: ['schoolName', 'index', 'action'],
    
  2. 然后在school标签中把action绑定父组件app中的changeEvent方法

    :action="changeEvent" 
    

2.更简单的方法$parent

直接在子组件通过this.$parent.changeEvent(schoolName)来调用

1.通过$parent来调用父组件,可以获取父组件的方法,属性等全部数据

2.当操作逻辑简单的时候,就可以直接用$parent.方法

? 也可以使用$parent.属性来使用




但是不推荐这么写,这样写的耦合程度太高了

3.获取当前组件的根组件$root

建议使用props属性来修改,这样可以减少耦合,不推荐这种直接修改的方法

vue