欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

Vue.js的组件之间通信- 动态属性传递

程序员文章站 2022-05-16 17:00:27
...
这次给大家带来Vue.js的组件之间通信- 动态属性传递,Vue.js组件之间通信- 动态属性传递的注意事项有哪些,下面就是实战案例,一起来看一下。

表单里面的内容动态的显示在子组件中

<template>
  <div id="myapp">
    <input type="text" v-model="myVal">
    <com-a :my-value="myVal"></com-a>
  </div></template><script>
  import ComA from './components/a.vue'
  export default {    components: {
      ComA
    },
    data () {      return {        myVal: ''
      }
    }
  }</script>

子组件a.vue

<template>
  <div class="hello">
    {{hello}}
    {{ myValue }}  </div></template><script>
  export default {//    声明number属性//    未指定类型//    props: ['number'],//    指定类型
    props: {      'my-value': [Number, String]
    },
    data () {      return {        hello: 'I am componnet a'
      }
    }
  }</script>

Vue.js的组件之间通信- 动态属性传递

组件之间的通信 - 动态属性传递

插槽 slot
向子组件传递一个模板

<com-a :my-value="myVal">
      <p>我是一个插槽</p>
      <span>123456</span></com-a>

com-a组件中

<template>
  <div class="hello">
    {{hello}}
    {{ myValue }}
  //给插槽设置默认值    <slot>no slot</slot>
  </div></template>

Vue.js的组件之间通信- 动态属性传递

如果传递的插槽里面没有内容,为空

<com-a :my-value="myVal"></com-a>

给插槽设置默认值

<slot>no slot</slot>

则显示

Vue.js的组件之间通信- 动态属性传递

具名Slot

<template>  <div id="myapp">
    <!--具名插槽-->
    <com-a :my-value="myVal">
      <p slot="header">xxxx header</p>
      <p slot="footer">yyyy footer</p>
    </com-a>
  </div></template>

com-a组件中

<template>  <div class="hello">
    {{hello}}
    {{ myValue }}    <!--<slot>no slot</slot>-->
    <br>
    <slot name="header">no header</slot>
    <p>乱七八糟的内容</p>
    <slot name="footer">no footer</slot>
  </div></template>

执行结果:

Vue.js的组件之间通信- 动态属性传递

相信看了本文案例你已经掌握了方法,更多精彩请关注其它相关文章!

推荐阅读:

Vue.js的事件绑定-表单事件绑定

Vue.js的vue标签属性和条件渲染

以上就是Vue.js的组件之间通信- 动态属性传递的详细内容,更多请关注其它相关文章!