首页 > 其他分享 >转 Vue插槽有什么作用?

转 Vue插槽有什么作用?

时间:2022-12-05 00:33:14浏览次数:60  
标签:Vue name 作用域 插槽 age 组件 slot2 作用

 

 

vue解惑之slot(插槽)

 

一.插槽是个什么玩意,能吃吗

  • 在vue中【插槽】,从字面意思来看,插槽意味着【内容的增加】,回到vue的使用场景,插槽就是【父组件调用子组件时,额外增加的内容】。
  • 插槽显不显示、显示的内容是由父组件来控制的,而插槽在哪里显示由子组件来决定

二.插槽怎么用,好用吗

    1.默认插槽

       父组件

复制代码
1 <template>
2   <div>
3     父组件的内容
4     <slot1>
5       <p style="color:red">父组件中插槽内容</p>
6     </slot1>
7   </div>
8 </template>
复制代码

 

    子组件

复制代码
<template>
  <div>
    <div>slot1子组件</div>
    <slot></slot>
  </div>
</template>
<script>
复制代码

    效果

       从上面可以看出,父组件引用子组件标签里的内容被加在了子组件<slot>标签中。slot就是一个插槽,当父组件调用子组件时,父组件的内容被插入到子组件相应的位置中了。

   2.具名插槽

       顾名思义,就是有具体名字的插槽,子组件中与父组件相对应名字的内容将添加。

    3.作用域插槽

  父组件

复制代码
<template>
  <div>
    作用域插槽父组件
    <slot2>
      <template slot-scope="user">
        <div v-for="(item, index) in user.data" :key="index">
          <span>姓名:{{item.name}}</span>;
          <span>年龄:{{item.age}}</span>
        </div>
      </template>
    </slot2>
  </div>
</template>
<script>
import slot2 from "./slot2"
export default {
  name: 'main',
  components: {
    slot2
  }
}
</script>
<style scoped>
</style>
复制代码

  子组件

复制代码
<template>
  <div>
    作用域插槽的子组件
    <slot :data="user"></slot>
  </div>
</template>

<script>
export default {
  name: 'slot2',
  data () {
    return {
      user: [
        {name: '王五', age: '23'},
        {name: '李二', age: '45'},
        {name: '张三', age: '15'}
      ]
    }
  }
}
</script>
复制代码

  效果

  父组件使用slot-scope接收来自子组件传过来的参数。

  使用场景:如果子组件中的某一部分的数据,每个父组件都会有自己的一套对该数据的不同的呈现方式,这时就需要用到作用域插槽

  分类: Vue

标签:Vue,name,作用域,插槽,age,组件,slot2,作用
From: https://www.cnblogs.com/effortandluck/p/16951294.html

相关文章

  • 转 Vue生命周期函数详解
     https://blog.csdn.net/wen110898/article/details/120520844?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-......
  • 转 vue的钩子函数-生命周期
    vue的钩子函数-生命周期 播报文章原创|浏览:273|更新:2020-11-0716:391234567分步阅读所为生命周期顾名思义即是一个物质......
  • Vue的基础知识
    作为后端程序员,了解和掌握一些前端知识也是必不可少的,本章就和大家分享Vue的一些基础知识,希望能够对Vue小白有所帮助。话不多说,下面我们直接进入主题。一、Vue简介Vue简......
  • Vue 中组件的局部css样式配置:scoped样式
    Vue中组件的局部css样式配置:scoped样式1:说明:<!--##scoped样式1.作用:让样式在局部生效,防止冲突。2.写法:```<stylescoped>```-->2:代码结构3:代码内容index.html<!......
  • 扒源码系列:GPT / GPT-2 中 proj 的作用
    事情是这样的。前两天翻译了一篇文章图解GPT-2。在翻译的过程中为了防止自己出错,所以参考了一下其他人对于GPT的一些理解,然后就出错了,为了解决这个错误,导致我最后重新扒了一......
  • vue3+echarts,tooltip trigger: 'axis'没有作用,解决办法
    用markRaw让echarts从监听对象变成普通对象!!因为vue3中的数据对象是用的proxy监听的,要取值需要用value等方法取出来。import{onMounted,ref,markRaw}from'vue'......
  • 转 vue中的双向数据绑定详解 的解释
    vue中的双向数据绑定详解 https://www.cnblogs.com/zhuzhenwei918/p/7309604.html 前言什么是数据双向绑定? vue是一个mvvm框架,即数据双向绑定,即当数据发生......
  • 接口的作用
    接口的作用1.约束2.定义一些方法,让不同的人实现~3.publicabstract方法4.publicstaticfinal常量5.接口不能被实例化~接口中没有构造方法6.implements可以......
  • Blazor和Vue对比学习(进阶.路由导航一):基本使用
    Blazor和Vue都是单文件组件SPA,路由的实现逻辑非常相似,页面路径的改变都是组件的切换,但因为各自语言的特性,在实现方式上有较大差异。 一、安装1、Vue:Router是Vue的一个......
  • VUE3
    ######computed```javascriptconstcomputed1=computed({get(){returncount},set(){console.log("1")}})``` ######watch```javascriptconstco......