首页 > 其他分享 >06 Vue3插槽

06 Vue3插槽

时间:2024-04-16 18:24:13浏览次数:27  
标签:06 name title 插槽 Vue3 组件 id

6.9. 【slot】

1. 默认插槽

image

父组件中:
        <Category title="今日热门游戏">
          <ul>
            <li v-for="g in games" :key="g.id">{{ g.name }}</li>
          </ul>
        </Category>
子组件中:
        <template>
          <div class="item">
            <h3>{{ title }}</h3>
            <!-- 默认插槽 -->
            <slot></slot>
          </div>
        </template>

2. 具名插槽

父组件中:
        <Category title="今日热门游戏">
          <template v-slot:s1>
            <ul>
              <li v-for="g in games" :key="g.id">{{ g.name }}</li>
            </ul>
          </template>
          <template #s2>
            <a href="">更多</a>
          </template>
        </Category>
子组件中:
        <template>
          <div class="item">
            <h3>{{ title }}</h3>
            <slot name="s1"></slot>
            <slot name="s2"></slot>
          </div>
        </template>

3. 作用域插槽

  1. 理解:数据在组件的自身,但根据数据生成的结构需要组件的使用者来决定。(新闻数据在News组件中,但使用数据所遍历出来的结构由App组件决定)

  2. 具体编码:

    父组件中:
          <Game v-slot="params">
          <!-- <Game v-slot:default="params"> -->
          <!-- <Game #default="params"> -->
            <ul>
              <li v-for="g in params.games" :key="g.id">{{ g.name }}</li>
            </ul>
          </Game>
    
    子组件中:
          <template>
            <div class="category">
              <h2>今日游戏榜单</h2>
              <slot :games="games" a="哈哈"></slot>
            </div>
          </template>
    
          <script setup lang="ts" name="Category">
            import {reactive} from 'vue'
            let games = reactive([
              {id:'asgdytsa01',name:'英雄联盟'},
              {id:'asgdytsa02',name:'王者荣耀'},
              {id:'asgdytsa03',name:'红色警戒'},
              {id:'asgdytsa04',name:'斗罗大陆'}
            ])
          </script>
    

7.

标签:06,name,title,插槽,Vue3,组件,id
From: https://www.cnblogs.com/songxia/p/18138889

相关文章

  • 在宝塔上配置打包好的vue3项目
    配置文件如下server{listen80;server_namegongchang.365cb.cn; indexindex.htmlindex.htmdefault.phpdefault.htmdefault.html;root/www/wwwroot/dist;#SSL-STARTSSL相关配置,请勿删除或修改下一行带注释的404规则#error_page404/404.html;#SS......
  • 立创泰山派学习06--TF挂载及测试
    1、关机(poweroff)断电,再插入TF卡2、开机,查看内核日志dmesg|grepmmcdmesg-c(查看并清除内核日志)      或者fdisk-l    3、创建一个目录,用于挂载TF卡sudo mkdir/media/sdcard      或者直接挂载到/mnt/sdcar......
  • vue3中使用scss
    安装依赖npminstallsasssass-loader--save-dev局部使用<stylescopedlang="scss">...定义样式</style> 全局共享样式变量,在assets/style文件夹中定义mixin.scss文件,并设置一些样式;在其他文件使用定义的变量前需要引入样式文件表  在vite.config.ts文件中......
  • 《线性代数的本质》(06-附注2-07)
    06-逆矩阵、列空间、秩与零空间线性方程组:A\(\vec{x}\)=\(\vec{v}\)线性代数的一个作用:帮助我们处理线性方程组。形式:矩阵与向量的乘法。几何意义:寻找一个向量\(\vec{x}\),这个向量在特定的线性变换之后与目标向量\(\vec{v}\)重合。行列式不等于0:有且仅有一个向量再变......
  • 06_NET中使用Consul(服务发现)
    官网:ConsulbyHashiCorp 中文文档:Consul中文文档|Consul中文文档(gitbook.io)安装Consulwindow安装:Install|Consul|HashiCorpDeveloper1.选择windowsx64版本(64bit)2.进入下载好的文件夹中,打开powershell,执行命令,启动服务端代理consul.exeagent-dev3.......
  • vue3:如何进行组件间的信息传递
    这里以父组件——主页面|子组件1——对话框|子组件2——按钮为例父组件——主页面import{provide,ref}from"vue";#创建对象,并且其有一个value属性,现在定义为falseconstdialogVisible=ref(false);constsetdialogVisible=(value)=>{dialogVisible.value=value;......
  • 06、配置设备忽略报文目的MAC地址
    配置设备忽略报文目的MAC地址通过配置设备忽略报文的目的MAC地址,可以使目的MAC地址为非本设备三层接口MAC地址的报文也能够查找路由表进行转发。背景信息在网络维护的过程中经常会镜像流量,然后将此流量引到特定设备进行分析。而一般情况下设备只会将目的MAC地址为本设备三......
  • POI2006ORK-Ploughing
    POI#Year2006#贪心#暴力如果将所有的列干掉,那么贪心的如果可以删除一列就优先删除一列当左右列不可以删除时,考虑上下行先删除谁不好判断考虑在操作之前先枚举上面删除多少行,这样在操作时就可以贪心的使得下面删掉的行尽可能少也就是贪心先删除上面//Author:xiaruize#if......
  • POI2006EST-Aesthetic Text
    POI#Year2006#dp\(dp_{i,j}\)表示考虑到第\(i\)个单词,当前行长度为\(j\)的最小代价暴力转移是\(\mathcal{O}(n^3)\)的然后观察到,其实合法的转移不能卡满,具体来说,有至少\(\frac{1}{16}\)的常数,因为\(dp\)转移还有\(<1\)的常数,所以可以水过去//Author:xiaruize......
  • POI2006ZAB-Frogs
    二分#单调队列#bfs#POI#Year2006具有单调性,二分从上往下考虑每一行,对于每一列维护一个单调队列,考虑维护一个覆盖的区间,表示这一列的最近的圆的位置,然后就可以计算它的覆盖区间用差分计算每个位置是否被覆盖,处理当前长度下每个点是否被覆盖然后\(bfs\)即可//Author:x......