1.背景

2.slot简单使用

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!-- <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>-->
<script src="../js/vue.js"></script>
</head>
<body>
<h2>插槽slot简单使用</h2>
<pre>
1.定义:通俗的来说就是html中的变量,你可以理解为html替换,他要实现的功能非常类型之前我们使用jquery的 $("#id").html('要替换的内容')
2.官方的定义大家自己百度
需求:
1. 定义一个组件;
2.组件内部的内容可以根据使用者替换
</pre>
<hr>
<h2>案例如下:</h2>
<div id="app">
<c-child1></c-child1>
-------------------------
<c-child1>
<div>父类替换你的值</div>
</c-child1>
</div> <!--子组件模板1-->
<template id="child1id">
<div>
我是一个子组件
<div>
<slot>这是我的默认内容,使用者可以替换</slot>
</div>
</div>
</template>
<script>
let app = new Vue({
el: '#app',
// 组件
components: {
'c-child1': {
template: '#child1id',
}
}
})
</script>
</body>
</html>

3.具名插槽

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!-- <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>-->
<script src="../js/vue.js"></script>
</head>
<body>
<h2>插槽slot-具名插槽</h2>
<pre>
1.当多个插槽时,我们替换的内容到底替换那个插槽呢,这时候我们就需要给插槽去一个名字
2.可以利用slot 元素的一个特殊的特性:name来定义具名插槽
需求:
1. 定义一个组件;
2. 组件内3个插槽,分别为网页的头部、主体、脚部
</pre>
<hr>
<h2>案例如下:</h2>
<div id="app">
<c-child1>
<div slot="header">填充头部</div>
<div slot="body">填充主体</div>
<div slot="footer">填充脚部</div>
</c-child1> </div> <!--子组件模板1-->
<template id="child1id">
<div>
<div>
<slot name="header">头部</slot>
<slot name="body">主体</slot>
<slot name="footer">脚部</slot>
</div>
</div>
</template>
<script>
let app = new Vue({
el: '#app',
// 组件
components: {
'c-child1': {
template: '#child1id',
}
}
})
</script>
</body>
</html>

4.父组件控制插槽中的数据显示方式

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!-- <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>-->
<script src="../js/vue.js"></script>
</head>
<body>
<h2>插槽-实现子组件提供数据-父组件提供展示样式</h2>
<pre>
需求:
1. 提供一个子组件含插槽和一组数据;
2. 父组件控制数据在插槽中的显示方式;
备注:
实际生产中子组件获取到数据后,可能要在不同环境的父组件中做不同的展示
</pre>
<hr>
<h2>案例如下:</h2>
<div id="app">
展示方式一:
<c-child1>
<!-- slotProps2 可以自定义-->
<template slot-scope="slotProps2">
<ul>
<!-- slotProps2.data 取出插槽绑定在上面的data-->
<li v-for="item in slotProps2.data">{{item}}</li>
</ul>
</template>
</c-child1>
-----------------------
<br>
展示方式二:
<c-child1>
<template slot-scope="slotProps2">
<ul>
<li v-for="(item,index) in slotProps2.data">{{index+1}}-{{item}}</li>
</ul>
</template>
</c-child1>
</div> <!--子组件模板1-->
<template id="child1id">
<div>
<!-- 这里的data不乱取名字,只能是data-->
<slot :data="orderList"></slot>
</div>
</template>
<script>
let app = new Vue({
el: '#app',
// 组件
components: {
'c-child1': {
template: '#child1id',
data() {
return {
orderList: ['书籍', '水果', '键盘', '水杯']
}
}
}
}
})
</script>
</body>
</html>

完美!

vue之插槽-slot的更多相关文章

  1. Vue.js插槽slot和作用域插槽slot-scope学习小结

    一般来说,在Vue项目中使用父子组建时,都是把通用的HTML结构提取出来写成一个子组件,需要动态展示的数据用过prop属性传递,不过有时候我们可能想给子组件传递一个HTML代码,这个时候用prop不太 ...

  2. Vue中插槽slot的使用

    插槽,也就是slot,是组件的一块HTML模板,这块模板显示不显示.以及怎样显示由父组件来决定. 实际上,一个slot最核心的两个问题在这里就点出来了,是显示不显示和怎样显示. 由于插槽是一块模板,所 ...

  3. vue的插槽slot

    插槽是写在子组件上,用啦留给父级添加内容的位置接口: 1. 父级里的 <template :is='子标签名'>父插入内容</template>标签,里的内容       sl ...

  4. vue 中的slot属性(插槽)的使用

    总结如下: VUE中关于插槽的文档说明很短,语言又写的很凝练,再加上其和方法,数据,计算机等常用选项在使用频率,使用先后上的差别,这就有可能造成初次接触插槽的开发者容易产生“算了吧,回头再学,反正已经 ...

  5. vue 插槽slot

    本文是对官网内容的整理 https://cn.vuejs.org/v2/guide/components.html#编译作用域 在使用组件时,我们常常要像这样组合它们: <app> < ...

  6. vue中的slot(插槽)

    vue中的插槽----slot 什么是插槽? 插槽(Slot)是Vue提出来的一个概念,正如名字一样,插槽用于决定将所携带的内容,插入到指定的某个位置,从而使模板分块,具有模块化的特质和更大的重用性. ...

  7. [Vue]组件——插槽:slot(匿名插槽,具名插槽)与slot-scope(作用域插槽)

    1.单个插槽 | 匿名插槽 1.1<navigation-link> 子组件定义为: <a v-bind:href="url" class="nav-l ...

  8. Vue插槽 slot

    1. 什么是插槽 插槽slot 是往父组件中插入额外内容,实现组件的复用,一个插槽插入到一个对应的标签中 2. 实例: 一个组件中不允许有两个匿名插槽 </head> <body&g ...

  9. 在vue中使用插槽 slot

    插槽(slot)这个概念非常重要 插槽的使用场景1:在子组件里面显示父组件的dom <div id='root'> <child content = '<p>Dell&l ...

  10. vue使用插槽分发内容slot的用法

    将父组件的内容放到子组件指定的位置叫做内容分发 //在父组件里使用子组件 <son-tmp> <div>我是文字,我需要放到son-tmp组件里面制定的位置</div&g ...

随机推荐

  1. MySQL Docker搭建挂载并启用远程连接

    1.拉取镜像 后面可以指定版本号,这里使用8.0 docker pull docker.io/mysql:8.0 2.查看mysql镜像 docker images 3.启动docker并挂载 doc ...

  2. nginx 信号量

    nginx支持的信号量 TERM, INT fast shutdown QUIT graceful shutdown HUP changing configuration, keeping up wi ...

  3. 视觉语言跨模态特征语义相似度计算改进--表征空间维度语义依赖感知聚合算法 ACM MM

    论文链接:Unlocking the Power of Cross-Dimensional Semantic Dependency for Image-Text Matching (ACM MM23) ...

  4. HDOJ 6703 Array

    HDOJ 6703 Array 题目 题目链接 array *Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 262144/262144 K ...

  5. 解析QAnything启动命令过程

    一.启动命令过程日志 启动命令bash ./run.sh -c local -i 0 -b hf -m Qwen-1_8B-Chat -t qwen-7b-chat.输入日志如下所示: root@MM ...

  6. Swagger注解说明

    常用注解: - @Api()用于类: 表示标识这个类是swagger的资源 - @ApiOperation()用于方法: 表示一个http请求的操作 - @ApiParam()用于方法,参数,字段说明 ...

  7. 教你基于MindSpore用DCGAN生成漫画头像

    本文分享自华为云社区<[昇思25天学习打卡营打卡指南-第二十天]DCGAN生成漫画头像>,作者:JeffDing. DCGAN生成漫画头像 在下面的教程中,我们将通过示例代码说明DCGAN ...

  8. git将某个开发分支最近的提交合并成一个提交

    你可以使用 `git merge --squash` 命令将某个开发分支最近的提交合并成一个提交. 具体步骤如下: 1. 切换到你想要合并的分支上,比如 `develop` 分支: `git chec ...

  9. card 卡片 html

    {% extends 'base.html' %} {% block content %} <div class="container"> <h1>客户信息 ...

  10. django redirect_authenticated_user

    redirect_authenticated_user是在Web开发框架(如Django)中常见的设置,用于控制身份验证重定向的行为. 当启用redirect_authenticated_user时, ...