vue基础 - 数据传递之 $attrs inheritAtt

2018-03-12  本文已影响45人  会煮咖啡的猫咪

解决的问题

简单的元素层次嵌套,可以不用 vuex进行数据管理

对象

所有向下传递的属性值

本节点是否渲染所有属性值

代码


<script src="https://cdn.jsdelivr.net/npm/vue"></script>

<div id="app">
  <demo1 :val1="val1" :val2="val2"></demo1>
</div>

<script lang="javascript">

  var demo11 = {
    template: `<div>传递二层:{{val1}} {{val2}}</div>`,
    props: ['val1','val2'],
    // inheritAttrs: false
  }

  var demo1 = {
    template: `
      <div>
        传递一层:{{val1}}
        <demo11 v-bind="$attrs"></demo11>
      </div>
    `,
    props: ['val1'],
    inheritAttrs: false,
    components:{
      demo11
    },
    created () {
      console.log(this.$attrs) // { boo: 'Hello Javascript!', coo: 'Hello Vue', doo: 'Last' }
    }
  }

  var app = new Vue({
    el: '#app',
    components:{
      demo1
    },
    data: {
      val1: 'val1',
      val2: 'val2'
    }
  })

</script>
上一篇 下一篇

猜你喜欢

热点阅读