随笔 - 326,  文章 - 0,  评论 - 0,  阅读 - 16万
  • 默认插槽
    没有给插槽定义name属性的插槽为默认插槽
  • 具名插槽
    带name值的插槽为,具名插槽
  • 案例演示
    • APP.vue
      <template>
          <SlotTest>
              <!-- 具名插槽 -->
              <h3 slot="name1">{{title}}</h3>
              <!-- 默认插槽 -->
              <slot>1111</slot>
          </SlotTest>
      </template>
      <script>
      import SlotTest from './components/SlotTest.vue'
      export default {
          name: "App",
          data(){
              return{
                  title:"标题"
              }
          },
          components:{
              SlotTest
          }
      };
      </script>
      <style scoped>
      </style>
      
    • SlotTest.vue
      <template>
          <div>
              <slot name="name1">SlotTest组件标题</slot>
              <slot name="name2">SlotTest组件标题</slot>
              <slot>222</slot>
          </div>
      </template>
      <script>
      export default {
          name: "SlotTest",
      };
      </script>
      <style scoped>
      </style>
      
  • 插槽作用域
    • App.vue
      <template>
              <!-- 作用域插槽 -->
          <SlotTest :todos="todos">
              <!-- 
                  scope:是一个对象,对象上有todo,index顺序
                  v-slot指定slot回传过来的所有属性和数据
                    v-slot 是新语法
                    slot-scope 是老语法
               -->
              <template v-slot="scope">
                  <span>父组件上回传的~~{{scope.todo}}~~{{scope.index}}</span>
              </template>
          </SlotTest>
      </template>
      <script>
      import SlotTest from './components/SlotTest.vue'
      export default {
          name: "App",
          data(){
              return{
                  todos:[
                      {id:1,name:"张三1",bool:true},
                      {id:2,name:"张三2",bool:false},
                      {id:3,name:"张三3",bool:false}
                  ]
              }
          },
          components:{
              SlotTest
          }
      };
      </script>
      <style scoped>
      </style>
      
    • SlotTest.vue
      <template>
          <ul>
              <li v-for="(todo,index) in todos" :key="todo.id">
                  <span :style="{color:todo.bool?'red':'blue'}">子组件上~~{{todo.id}}~{{todo.name}}~~{{todo.bool}}</span>
                  <!-- slot标签上的所有属性都会自动传递给父组件 -->
                  <slot :todo="todo" :index="index"></slot>
              </li>
          </ul>
      </template>
      <script>
      export default {
          name: "SlotTest",
          props:{
              todos:Array
          }
      };
      </script>
      <style scoped>
      </style>
      
posted on   文种玉  阅读(392)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
历史上的今天:
2020-07-13 访问tomcat服务器的时候常见的错误
2020-07-13 addresss already in use,JVM_BIND:8080
2020-07-13 JSP的九大内置对象
2020-07-13 jsp中的java脚本
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示