Vue基础-作用域插槽-列表组件
Vue 测试版本:Vue.js v2.5.13
Vue 官网介绍作用域插槽时,
在 2.5.0+,
slot-scope能被用在任意元素或组件中而不再局限于<template>。作用域插槽更典型的用例是在列表组件中,允许使用者自定义如何渲染列表的每一项:
例子:
<my-awesome-list :items="items">
<!-- 作用域插槽也可以是具名的 -->
<li
slot="item"
slot-scope="props"
class="my-fancy-item">
{{ props.text }}
</li>
</my-awesome-list>
列表组件的模板:
<ul>
<slot name="item"
v-for="item in items"
:text="item.text">
<!-- 这里写入备用内容 -->
</slot>
</ul>
其实到这里,我自己倒腾了下,一开始没有弄出来,后来理了理思绪才弄出来,完整代码是这样:
<parent-component v-bind:items="items"></parent-component>
window.onload = function() {
Vue.component('parent-component', {
template: `
<my-awesome-list :items="items">
<!-- 作用域插槽也可以是具名的 -->
<li
slot="item"
slot-scope="props"
>
{{ props.text }}
</li>
</my-awesome-list>
`,
props: ['items']
});
Vue.component('my-awesome-list', {
template: `
<ul>
<slot name="item"
v-for="item in items"
:text="item.text">
<!-- 这里写入备用内容 -->
</slot>
</ul>
`,
props: ['items']
});
new Vue({
el: '#app',
data: {
items: [
{ text: '111' },
{ text: '222' },
{ text: '333' }
]
}
});
};
当然,也可以这样:
<my-awesome-list :items="items">
<!-- 作用域插槽也可以是具名的 -->
<li slot="item" slot-scope="props">
{{ props.text }}
</li>
</my-awesome-list>
window.onload = function() {
Vue.component('my-awesome-list', {
template: `
<ul>
<slot name="item"
v-for="item in items"
:text="item.text">
<!-- 这里写入备用内容 -->
</slot>
</ul>
`,
props:['items']
});
new Vue({
el: '#app',
data: {
items: [
{ text: '111' },
{ text: '222' },
{ text: '333' }
]
}
});
};
参考文档:
https://cn.vuejs.org/v2/guide/components.html#作用域插槽
Vue基础-作用域插槽-列表组件的更多相关文章
- Vue基础-匿名插槽与作用域插槽的合并和覆盖行为
Vue 测试版本:Vue.js v2.5.13 Vue 文档: <slot> 元素可以用一个特殊的特性 name 来进一步配置如何分发内容.多个插槽可以有不同的名字.具名插槽将匹配内容片段 ...
- Vue基础-渲染函数-父子组件-传递数据
Vue 测试版本:Vue.js v2.5.13 做了个 demo,把父子组件的数据都绑定到 Vue 实例 app 上,注释中的 template 相对好理解些 <div id="app ...
- [译] 我最终是怎么玩转了 Vue 的作用域插槽
原文链接:https://juejin.im/post/5c8856e6e51d456b30397f31#comment 原文地址:How I finally got my head around S ...
- Vue的作用域插槽
一.通常情况下都是父组件传递数据给子组件进行展示的(无法改变子组件的展示方式):而作用域插槽允许子组件通过slot向父组件传递数据,类似React中的“以函数为子组件”,由父组件决定渲染的内容(包含绑 ...
- Vue基础(三)---- 组件化开发
基本结构: ◆1.组件化开发思想 ◆2.组件注册 ◆3.Vue调试工具用法 ◆4.组件间数据交互 ◆5.组件插槽 ◆6.基于组件的案例 ◆1.组件化开发思想 优点: 提高开发效率 方便重复使用 简 ...
- vue基础技术点列表(一)
一. vue编写需要注意的细节1.vue初始化实例时使用首字母大写,在添加全局配置时也要首字母大写(如添加组件Vue.component("",{template:"&q ...
- vue 基础-->进阶 教程(3):组件嵌套、组件之间的通信、路由机制
前面的nodejs教程并没有停止更新,因为node项目需要用vue来实现界面部分,所以先插入一个vue教程,以免不会的同学不能很好的完成项目. 本教程,将从零开始,教给大家vue的基础.高级操作.组件 ...
- 03 . Vue基础之计算属性,组件基础定义和使用
vue组件 fetch请求组件 fetch XMLHttpRequest是一个设计粗糙的API, 配置和调用方式非常混乱,而且基于事件的异步模型写起来不友好,兼容性不好. <!DOCTYPE h ...
- Vue基础进阶 之 列表过渡
在前面的博客我们一直在操作单个元素的过渡,如果是对多个元素过渡,例如列表,这时就要用到<transition-group>这个组件了: 如何使用:将要操作的列表元素放在<transi ...
随机推荐
- django-1.11.3 源码详解 -- 0001 django-admin.py 的调用逻辑
django-admin是django的命令行接口.可以用它来创建工程(startproject) .创建app(startapp).它里面又是怎么写的呢? 一.django-admin.py 的内容 ...
- 错了:用流量能够放肆,有wifi则要节制
网络上疯传的节制体中就有这么一句:有wifi就会放肆,但用流量就会节制.榜上有名,也说明了人们对wifi网络的需求.尤其是免费wifi.从对无线网络需求方面,毫无疑问,可是从还有一角度,我则觉得是流量 ...
- mongod安装
mongod.exe --dbpath "D:\Program Files\MongoDB\log\log.txt" mongod.exe --dbpath "D:\Pr ...
- 穷人的语义处理工具箱之中的一个:语义版Jaccard
/* 版权声明:能够随意转载,转载时请标明文章原始出处和作者信息 .*/ author: 张俊林 |为什么我们是ML界的穷人 假设对工业界里的机器学习(ML)从业者进行阶级划分的话,划线标准不是你用的 ...
- python学习之yummain模块
定义:`yum`的命令行接口. yummain.main(args) Run the yum program from a command line interface. yummain.hotsho ...
- 示例 Demo 工程和 API 参考链接
Camera Explorer:有关 Windows Phone8 中有关增强 Camera API 的使用.文章链接 Filter Effects:对拍摄的照片或者图片库中的照片应用 Nokia I ...
- jvm垃圾收集器之Throughput GC
呃.HotSpot VM的GC组老人之一Jon Masamitsu很久之前就写过blog讲解这个:https://blogs.oracle.com/jonthecollector/entry/our_ ...
- C++之在类内部访问对象的私有成员
一.引言 今天看项目里的一段代码发现,竟然可以再类的成员函数中访问该类的对象的私有成员.感觉不可思议. 自己写的实例代码: #include <iostream> using namesp ...
- 【转】logstash配置java环境
1.bin/logstash,新增 JAVA_CMD=/home/admin/soft/jdk1.8.0_121/bin JAVA_HOME=/home/admin/soft/jdk1.8.0_121 ...
- 实现在edittext中任意插入图片
Myedittext: public class MyEditText extends EditText { public MyEditText(Context context) { super(co ...