【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最核心的两个问题这里就点出来了,父组件决定插槽显示或不显示以及怎样显示,子组件决定 ...
随机推荐
- 后端给前端rtmp和flv直播 播放方法
const suffixal = this.videoObj.videoServer .split('?')[0] .split('.') .pop() var router = this.$rout ...
- dubbo~全局异常拦截器的使用与设计缺陷
异常拦截器ExceptionMapper 在JAX-RS(Java API for RESTful Web Services)中,ExceptionMapper接口用于将Java异常映射到HTTP响应 ...
- LeetCode 683. K Empty Slots K 个空花盆 / LintCode 861. K个空的位置 (C++/Java)
题目: 一个花园有N个位置.每个位置上有一朵花.这N朵花会在N天内逐一盛开.每天都一定会有并且只有一朵花盛开,从这天起,这朵花将一直处于盛开的状态. 给定一个由数字1到N组成的数组flowers.数组 ...
- INFINI Labs 产品更新 | Console 数据迁移支持 Percentiles 均匀分区
INFINI Labs 产品又更新啦~,包括 Console v1.14.0,Gateway 1.21.0.其中 Console 数据迁移支持 Percentiles 均匀分区,修复已知 Bug 等. ...
- MFC 好像不太智能
我的想法就是这个MFC可能十靠鼠标和点击啥的偏主力 自己配消息处理函数容易出错,一旦代码坏了,不可逆向寻找失去的代码 多以能用鼠标设计的尽量用用编译器提供的界面去设计 当然啊这个API还是要自己找 这 ...
- 手摸手教你把Ingress Nginx集成进Skywalking
背景 在微服务大行其道的今天,如何观测众多微服务.快速理清服务间的依赖.如何对服务之间的调用性能进行衡量,成了摆在大家面前的难题.对此,Skywalking应运而生,它是托管在 Apache 基金会下 ...
- disabled 和 readonly 都是 HTML 表单元素的属性,它们有一些相同点和不同点。
disabled 和 readonly 都是 HTML 表单元素的属性,它们有一些相同点和不同点. 相同点: disabled 和 readonly 属性都可以用于表单中的输入框.文本域等元素,用于控 ...
- js金额格式化
function fmoney(s, n) //s:传入的float数字 ,n:希望返回小数点几位 { n = n > 0 && n <= 20 ? n : 2; s = ...
- K-means聚类是一种非常流行的聚类算法
K-means聚类是一种非常流行的聚类算法,它的目标是将n个样本划分到k个簇中,使得每个样本属于与其最近的均值(即簇中心)对应的簇,从而使得簇内的方差最小化.K-means聚类算法简单.易于实现,并且 ...
- Atcoder Beginner Contest 324 G Generate Arrays 题解-Treap
为了更好的阅读体验,请点击这里 题目链接 套上平衡树板子就能做的很快的题,然后因为是指针存树,因此交换只需要把序列大小较小的挨个拿出来插到相应的地方即可.复杂度 \(O(N \log^2 N)\). ...