Vue

插槽

2021-09-06  本文已影响0人  卑微小李学前端

  1、作用:让父组件可以向子组件指定位置插入html结构,也是一种组件之间通信的方式,

                     适用于 父组件===>子组件。

  2、分类:默认插槽、具名插槽、作用域插槽

  3、使用方式:

      1、默认插槽: 

        父组件中:

            <Category>

              <div>html结构</div>

            </Category>

        子组件中:

            <template>

              <div>

                  //定义一个插槽

                  <slot>插槽默认内容</slot>

              </div>

            </template>

      2、具名插槽:

        父组件中:

          <Category>

            <template slot="center">       //当多个插槽时 选择该结构放入哪一个插槽

                 <div>html结构1</div>

            </template>

            <template v-slot:footer>    //当用到template时 在vue2.6中有新写法

                    <div>html结构2</div>

            </template>

//如果没有template。直接在结构上写slot=“center”

          </Category>

        子组件中:

            <template>

              <div>

                //定义插槽

                <slot name="center"></slot>

                <slot name="footer"></slot>

              </div>

            </template>

      3、作用域插槽

        1、理解:数据在组件的自身,但根据数据生成的结构需要组件的使用者来决定。(games数据在Category中,但使用数据所遍历出来的结构由

        App组件来决定)

        2、具体编码:

<slot :games="games"></slot>    //把数据传给插槽

//想要拿到插槽传入的games数据   必须用template标签

  接受数据 scope=“{games}” 

       新写法:slot-scope = “{games}”

上一篇 下一篇

猜你喜欢

热点阅读