美文网首页
Vue插槽(三)作用域

Vue插槽(三)作用域

作者: fanren | 来源:发表于2021-03-10 19:43 被阅读0次

    为什么要使用作用域

    • 子组件代码,默认插槽内容是展示"性别"
    <template>
      <div>
        <div>名字: {{ user.name }}</div>
        <slot>性别: {{ user.sex }}</slot>
      </div>
    </template>
    
    <script>
    export default {
      name: "child",
      data() {
        return {
          user: {
            name: "张三",
            sex: "男",
            age: 33
          }
        };
      }
    };
    </script>
    
    • 父组件代码:设置插槽内容,展示用户的年龄
      <div class="hello">
        <child> 年龄:{{ user.age }} </child>
      </div>
    
    • 展示结果


    在父组件内,不能使用子组件的数据;

    使用作用域插槽

    • 子组件代码,把数据user绑定到```<slot>的元素上(又叫插槽 prop)
    <template>
      <div>
        <div>名字: {{ user.name }}</div>
        <slot name="content" v-bind:user="user">性别: {{ user.sex }}</slot>
      </div>
    </template>
    <script>
    export default {
      name: "child",
      data() {
        return {
          user: {
            name: "张三",
            sex: "男",
            age: 33
          }
        };
      }
    };
    </script>
    
    • 父组件代码,我们使用slot-scope来接受子组件提供的插槽 prop;
      <div class="hello">
        <child>
          <template slot="content" slot-scope="slotProps">
            年龄:{{ slotProps.user.age }}
          </template>
        </child>
      </div>
    
    • 运行结果


    相关文章

      网友评论

          本文标题:Vue插槽(三)作用域

          本文链接:https://www.haomeiwen.com/subject/arzpqltx.html