子组件通过watch监听父组件的props的内容

props的属性可以被watch监听到。我们可以在props改变的时候通过watch 去修改子组件的一些值

  1. props:{
  2. content:{
  3. type:String,
  4. default(){
  5. return '缺省内容'
  6. },
  7. }
  8. },
  9. watch:{
  10. content(val){
  11. this.text = val
  12. console.log(val)
  13. }
  14. },

父子组件通过$attr传值

父子组件的传值方式有多种,通过子组件的$attr也可以。

  1. 父组件上直接加class或者id
  2. 子组件通过$attr会直接接收在自己的最外层元素上。,inheritAttrs:false设置不自动接收
    1. <Dbutton :content = "content" class="btn"/>
    2. // 子组件
    3. <div @click="text = 123" :class="$attrs.class"> {{text}}</div>
    4. export default {
    5. inheritAttrs:false,
    6. }
    组件间的事件传递$attrs
    父子组件之间可以传递事件。通过$attrs去接收,并且事件虽然写在父组件上,但是却是子组件触发的
    父组件定义事件并传递给子组件
    1. <Dbutton :content = "content" @click="handle"/>
    2. //===
    3. methods:{
    4. handle(){
    5. console.log(11)
    6. }
    7. },
    子组件接收
    1. <div v-bind="$attrs" > {{content}}</div>
    2. // ====
    3. export default {
    4. inheritAttrs:false,
    5. }