vue插槽详解

野性酷女 2023-07-22 14:26 197阅读 0赞

插槽分为以下三种

1、默认插槽
2、具名插槽
3、作用域插槽

一 默认插槽

  1. <div id="app">
  2. <child-component>你好</child-component>
  3. </div>
  4. <script>
  5. Vue.component('child-component',{
  6. template:` <div> Hello,World! <slot></slot> </div> `
  7. })
  8. let vm = new Vue({
  9. el:'#app',
  10. data:{
  11. }
  12. })
  13. </script>

在这里插入图片描述
二 具名插槽

具名插槽其实就是在父组件中添加一个 slot=‘自定义名字’ 的属性, 然后在子组件中的 里面添加 name=‘自定义名字’ 即可; 如果父组件中有一部分没有添加 slot 属性,则此处就是默认的插槽,在子组件中的 ,直接就是使用的父组件的默认插槽部分;

  1. <div id="app">
  2. <div class="father">
  3. <h3>这里是父组件</h3>
  4. <child>
  5. <span slot="demo1">菜单1</span>
  6. <span>菜单2</span>
  7. <span slot="demo3">菜单3</span>
  8. </child>
  9. </div>
  10. </div>
  11. <template id="child">
  12. <div class="child">
  13. <h3>这里是子组件</h3>
  14. <slot></slot>
  15. <slot name="demo3"><slot>
  16. </div>
  17. </template>
  18. <script>
  19. var vm = new Vue({
  20. el: '#app',
  21. data: { },
  22. components: {
  23. child: {
  24. template: '#child'
  25. }
  26. }
  27. });
  28. </script>

在这里插入图片描述
三 作用域插槽

父组件模板的所有东西都会在父级作用域内编译;子组件模板的所有东西都会在子级作用域内编译。
不过,我们可以在父组件中使用 slot-scope 特性从子组件获取数据,
前提是需要在子组件中使用 :data=data 先传递 data 的数据。

  1. <div id="app">
  2. <div class="father">
  3. <h3>这里是父组件</h3>
  4. <child>
  5. <div slot-scope="user">
  6. { { user.data}}
  7. </div>
  8. </child>
  9. </div>
  10. </div>
  11. <script>
  12. Vue.component('child', {
  13. template:'' +
  14. '<div class="child">\n' +
  15. ' <h3>这里是子组件</h3>\n' +
  16. ' <slot :data="data"></slot>\n' +
  17. ' </div>',
  18. data: function () {
  19. return {
  20. data: ['zhangsan', 'lisi', 'wanwu', 'zhaoliu', 'tianqi', 'xiaoba']
  21. }
  22. }
  23. });
  24. var vm = new Vue({
  25. el: '#app',
  26. });
  27. </script>

在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,197人围观)

还没有评论,来说两句吧...

相关阅读

    相关 vue(slot)详解

    最近被问起是否了解vue的插槽(slot),咋一想发现,似乎很少用到这玩意。所以整理了下slot的一些用法。 slot (父组件 在子组件<slot> </slot>处插入

    相关 Vue

    插槽 新语法 插槽内容 编译作用域 后备内容 具名插槽 作用域插槽 独占默认插槽的缩写语法 解构插槽 Pro

    相关 Vue

            本博客记录了小编在学习Vue过程中的体会与感悟,简单来说就是小编的学习笔记,学习地址主要为Vue的官网,官网地址为:[《Vue官方文档》][Vue]。相关学习笔