美文网首页
vue的插槽

vue的插槽

作者: afeng_1234 | 来源:发表于2019-01-07 23:27 被阅读0次
    
    console.log('------匿名插槽---------------------------')
    <template>
        <div class="father">
            <h3>这里是父组件</h3>
            <child>
                <div class="tmpl">
                  <span>菜单1</span>
                  <span>菜单2</span>
                  <span>菜单3</span>
                  <span>菜单4</span>
                  <span>菜单5</span>
                  <span>菜单6</span>
                </div>
            </child>
        </div>
    </template>
    
    <template>
        <div class="child">
            <h3>这里是子组件</h3>
            //匿名插槽
            <slot></slot>
        </div>
    </template>
    
    
    
    console.log('------具名插槽---------------------------')
    <template>
      <div class="father">
        <h3>这里是父组件</h3>
        <child>
          <div class="tmpl" slot="up">
            <span>菜单1</span>
            <span>菜单2</span>
            <span>菜单3</span>
            <span>菜单4</span>
            <span>菜单5</span>
            <span>菜单6</span>
          </div>
          <div class="tmpl" slot="down">
            <span>菜单-1</span>
            <span>菜单-2</span>
            <span>菜单-3</span>
            <span>菜单-4</span>
            <span>菜单-5</span>
            <span>菜单-6</span>
          </div>
          <div class="tmpl">
            <span>菜单->1</span>
            <span>菜单->2</span>
            <span>菜单->3</span>
            <span>菜单->4</span>
            <span>菜单->5</span>
            <span>菜单->6</span>
          </div>
        </child>
      </div>
    </template>
    
    <template>
      <div class="child">
        // 具名插槽
        <slot name="up"></slot>
        <h3>这里是子组件</h3>
        // 具名插槽
        <slot name="down"></slot>
        // 匿名插槽
        <slot></slot>
      </div>
    </template>
    
    console.log('------作用域插槽| 带数据的插槽---------------------------')
    <template>
      <div class="father">
        <h3>这里是父组件</h3>
        <!--第一次使用:用flex展示数据-->
        <child>
          <template slot-scope="user">
            <div class="tmpl">
              <span v-for="item in user.data">{{item}}</span>
            </div>
          </template>
        </child>
        <!--第二次使用:用列表展示数据-->
        <child>
          <template slot-scope="user">
            <ul>
              <li v-for="item in user.data">{{item}}</li>
            </ul>
          </template>
     
        </child>
        <!--第三次使用:直接显示数据-->
        <child>
          <template slot-scope="user">
           {{user.data}}
          </template>
     
        </child>
        <!--第四次使用:不使用其提供的数据, 作用域插槽退变成匿名插槽-->
        <child>
          我就是模板
        </child>
      </div>
    </template>
    <template>
      <div class="child">
        <h3>这里是子组件</h3>
        // 作用域插槽
        <slot :data="data"></slot>
      </div>
    </template>
    <script>
     export default {
        data() {
          return {
            data: ['zhangsan','lisi','wanwu','zhaoliu','tianqi','xiaoba']
          }
        }
    }
    </script>
    
    

    相关文章

      网友评论

          本文标题:vue的插槽

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