【Vue】03 Slot 插槽 & 自定义事件
顾名思义就是一个槽,可以嵌入各种各样的东西
Vue的插槽就是一个slot标签,可以在这个定义了插槽的组件中插入其他的组件
但是有一点很重要:使用插槽的组件必须要用div标签一个根标签包裹,否则无效
<div id="container-element" > <book>
<aaa slot="aaa" v-bind:ta="head_title"></aaa>
<bbb slot="aaa" v-for="item in items" v-bind:tb="item"></bbb>
</book> </div> <script type="text/javascript"> Vue.component("book", {
template :
"<div>" +
"<slot name='aaa'></slot>" +
"<ul>" +
"<slot name='bbb'></slot>" +
"</ul>" +
"</div>"
}); Vue.component("aaa", {
props : ['ta'],
template : "<h3>{{ta}}</h3>"
}); Vue.component("bbb",{
props : ['tb'],
template : "<li>{{tb}}</li>"
}); let vueModel = new Vue({
el : "#container-element",
data : {
head_title : "书籍列表",
items : [
"java",
"linux",
"c++",
"python",
"rust"
]
} });
</script>
效果:

自定义事件:
组件中的事件与要执行的方法是在这个组件对象中声明:

测试效果:

但是在vueModel对象中的方法是不能被组件调用的

当前的方法可以在控制台中使用

效果:

v-for似乎是可以设置一个迭代变量,然后可以传递这个变量给组件渲染:

还是不是很能理解方法的绑定:

简单来说就是这个意思:
$emit 触发父组件的自定义事件
代码:
<book>
<aaa slot="aaa" v-bind:ta="head_title"></aaa>
<bbb slot="aaa" v-for="(item,index) in items" v-bind:tb="item" v-bind:i="index" v-on:remove="removeBookItem(index)"></bbb>
</book> </div> <script type="text/javascript"> Vue.component("book", {
template :
"<div>" +
"<slot name='aaa'></slot>" +
"<ul>" +
"<slot name='bbb'></slot>" +
"</ul>" +
"</div>"
}); Vue.component("aaa", {
props : ['ta'],
template : "<h3>{{ta}}</h3>"
}); Vue.component("bbb",{
props : ['tb','i'],
template : "<li>{{i}} {{tb}} <button @click='remove'>移除书籍</button></li> ",
methods : {
remove : function (i) {
this.$emit("remove", i);
} } }); let vueModel = new Vue({
el : "#container-element",
data : {
head_title : "书籍列表",
items : [
"java",
"linux",
"c++",
"python",
"rust"
]
},
methods : {
removeBookItem : function (index) {
// splice方法 (要执行删除的当前元素的索引,要删除的元素的个数, ...要增加的元素)
alert("删除了:" + this.items[index]);
this.items.splice(index, 1);
}
} });
</script>
【Vue】03 Slot 插槽 & 自定义事件的更多相关文章
- Vue结合slot插槽分发父组件内容实现高度复用、更加灵活的dialog组件
之前写过一篇关于vue实现dialog会话框组件的文章(http://www.cnblogs.com/fozero/p/8546883.html)[http://www.cnblogs.com/foz ...
- 使用Vue的slot插槽分发父组件内容实现高度复用、更加灵活的组件
写在前面 之前写过一篇关于vue实现dialog会话框组件的文章http://www.cnblogs.com/fozero/p/8546883.html, 讲到了如何实现一个vue对话框组件,其中涉及 ...
- Vue 之 slot(插槽)
前言: vue中关于插槽的文档说明很短,语言又写的很凝练,再加上其和methods,data,computed等常用选项在使用频率.使用先后上的差别,这就有可能造成初次接触插槽的开发者容易产生“算了吧 ...
- vue子组件使用自定义事件向父组件传递数据
使用v-on绑定自定义事件可以让子组件向父组件传递数据,用到了this.$emit(‘自定义的事件名称’,传递给父组件的数据) <!DOCTYPE html> <html lang= ...
- Vue学习之--------组件自定义事件(绑定、解绑)(2022/8/21)
文章目录 1.基础知识 2.代码实例 2.1 App.vue 2.2 school.vue 2.3 student.vue 3.测试效果(略) 4.实际应用(在组件化编码实战三的基础上改进) 4.1 ...
- vue子组件的自定义事件
父子组件的信息传递无碍就是父组件给子组件传值(props和$attrs)和父组件触发子组件的事件($emit) 之前已经谈过了父组件给子组件传值了,现在来说说父组件触发子组件的自定义事件吧-- 实际上 ...
- vue中slot插槽
插槽就是vue实现的一套内容分发的API,将插槽元素作为承载分发内容的出口. 也就是说在组件模板中默认占用一个位置,当使用组件标签时候,组件标签的内容就会自动替换掉内容 slot中可以设置一些默认的内 ...
- vue深入了解组件——自定义事件
一.事件名 跟组件和prop不同,事件名不存在任何自动化的大小写转换.而是触发的事件名需要完全匹配监听这个事件所用的名称.举个例子,如果重复啊一个camelCase名字的事件: this.$emit( ...
- 简单理解vue的slot插槽
slot的意思是插槽,想想你的电脑主板上的各种插槽,有插CPU的,有插显卡的,有插内存的,有插硬盘的,所以假设有个组件是computer,其模板是 <template> <div&g ...
- vue 之 slot插槽
插槽,也就是slot,是组件的一块HTML模板,这块模板显示不显示.以及怎样显示由父组件来决定. 实际上,一个slot最核心的两个问题这里就点出来了,父组件决定插槽显示或不显示以及怎样显示,子组件决定 ...
随机推荐
- abc356
D1.5h没做出,E0.5h做出来啦? E 有两个做法,第一个是枚举分子来计算分母对答案的贡献,另一种是枚举分母来求分子对答案的贡献. 枚举分子来计算分母对答案的贡献需要用到数论分块,所以我们讲枚举分 ...
- GO语言 GOLANG 上传微信电子小票图片
GO语言 GOLANG 上传微信电子小票图片.GO HTTP POST 图片文件.GO 上传图片文件.multipart/form-data.image/jpeg.image/png. GO 环境: ...
- centos 7 mysql8 安装和卸载
cent os 7 安装 mysql 8--install-start官网下载MySQL的RPM源,地址:https://dev.mysql.com/downloads/repo/yum/ 下载这个项 ...
- 图片预加载需要token认证的地址处理
1.添加函数修改img的属性: /** * * @param {*} idName 传入的id,获取改img的dom,添加相应的数学 */ export const proxyImg = (idNam ...
- Linux初始化配置主机名和固定ip
主机名修改 hostname 查看主机名 临时修改主机名 hostname xxx 修改主机名 重启后无效 永久修改主机名 修改/etc/sysconfig/network 固定IP修改 ifconf ...
- Asp.net core Swashbuckle Swagger 的常用配置
背景 .net core Swashbuckle Swagger 官方文档:https://github.com/domaindrivendev/Swashbuckle.AspNetCore 我们发现 ...
- linux挂载的ntfs格式硬盘无法使用回收站
linux挂载的ntfs格式硬盘无法使用回收站 解决办法: 新建回收站文件, 文件名为Trash-XXX . 比如Trash-1000 这里的1000就是你的$UID. sudo mkdir /.Tr ...
- Linux 内核:sysfs 有关的API
背景 相关文章:1.sysfs与kobject基类 下面内容基本上参考(有删改):https://blog.csdn.net/qb_2008/article/details/6846412 API a ...
- 设备树DTS 学习:3-驱动开发中常用的 DTS api
背景 本章的内容是为了实现在驱动中的开发,通过调用有关的api来寻找设备树节点熟悉,从而达到使用设备树进行驱动开发的目的. 参考:Linux内核 设备树操作常用API Linux设备树语法详解一文中介 ...
- 函数式编程(Lambda、Stream流、Optional等)
# 声明 文档来源:Github@shuhongfan 源文档:B站UP主:三更草堂 # 函数式编程-Stream流 # 概述 # 为什么学? 基操,否则看不懂别人写的优雅代码 简化代码,不想看到有些 ...