如何理解Vue的作用域插槽的实现原理


Posted in Javascript onAugust 19, 2017

本文介绍了如何理解Vue的作用域插槽的实现原理,分享给大家,也给自己留个笔记

举个例子,比如我写了一个可以实现条纹相间的列表组件,发布后,使用者可以自定义每一行的内容或样式(普通的slot就可以完成这个工作)。而作用域插槽的关键之处就在于,父组件能接收来自子组件的slot传递过来的参数,具体看案例和注释。

<!DOCTYPE html>
  <html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>Vue作用域插槽</title>
    <script src="https://cdn.bootcss.com/vue/2.3.4/vue.js"></script>
  </head>
  <body>
    <div id="app2">
      <my-stripe-list :items="users" odd-bgcolor="#D3DCE6" even-bgcolor="#E5E9F2">
        <!-- props对象接收来自子组件slot的$index参数 -->
        <template slot="cont" scope="props">
          <span>{{users[props.$index].id}}</span>
          <span>{{users[props.$index].name}}</span>
          <span>{{users[props.$index].age}}</span>
          <!-- 这里可以自定[编辑][删除]按钮的链接和样式 -->
          <a :href="'#edit/id/'+users[props.$index].id" rel="external nofollow" >编辑</a>
          <a :href="'#del/id/'+users[props.$index].id" rel="external nofollow" >删除</a>
        </template>
      </my-stripe-list>
    </div>
    <script>
      Vue.component('my-stripe-list', {
        /*slot的$index可以传递到父组件中*/
        template: `
          <div>
            <div v-for="(item, index) in items" style="line-height:2.2;" :style="index % 2 === 0 ? 'background:'+oddBgcolor : 'background:'+evenBgcolor">
              <slot name="cont" :$index="index"></slot>
            </div>
          </div>
        `,
        props: {
          items: Array,
          oddBgcolor: String,
          evenBgcolor: String
        }
      });
      new Vue({
        el: '#app2',
        data: {
          users: [
            {id: 1, name: '张三', age: 20},
            {id: 2, name: '李四', age: 22},
            {id: 3, name: '王五', age: 27},
            {id: 4, name: '张龙', age: 27},
            {id: 5, name: '赵虎', age: 27}
          ]
        }
      });
    </script>
  </body>
</html>

效果如下:

如何理解Vue的作用域插槽的实现原理

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js操作ajax返回的json的注意问题!
Feb 23 Javascript
jquery实现效果比较好的table选中行颜色
Mar 25 Javascript
jquery检测input checked 控件是否被选中的方法
Mar 26 Javascript
js实现网页右上角滑出会自动消失大幅广告的方法
Feb 27 Javascript
Java Mybatis框架入门基础教程
Sep 21 Javascript
jQuery Mobile漏洞会有跨站脚本攻击风险
Feb 12 Javascript
微信小程序 上传头像的实例详解
Oct 27 Javascript
详细分析单线程JS执行问题
Nov 22 Javascript
JQuery Ajax跨域调用和非跨域调用问题实例分析
Apr 16 jQuery
基于Fixed定位的框选功能的实现代码
May 13 Javascript
JavaScript 继承 封装 多态实现及原理详解
Jul 29 Javascript
解决vue中使用less/sass及使用中遇到无效的问题
Oct 24 Javascript
Vue Transition实现类原生组件跳转过渡动画的示例
Aug 19 #Javascript
JavaScript文件的同步和异步加载的实现代码
Aug 19 #Javascript
深入理解ES6学习笔记之块级作用域绑定
Aug 19 #Javascript
深入理解ES6的迭代器与生成器
Aug 19 #Javascript
Mui使用jquery并且使用点击跳转新窗口的实例
Aug 19 #jQuery
Vue自定义事件(详解)
Aug 19 #Javascript
Vue内容分发slot(全面解析)
Aug 19 #Javascript
You might like
PHP求小于1000的所有水仙花数的代码
2012/01/10 PHP
PHP 微信支付类 demo
2015/11/30 PHP
PHP模板引擎Smarty内建函数详解
2016/04/11 PHP
php封装db类连接sqlite3数据库的方法实例
2017/12/19 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
2018/02/19 PHP
thinkPHP+LayUI 流加载实现功能
2019/09/27 PHP
javascript入门·对象属性方法大总结
2007/10/01 Javascript
jQuery中Dom的基本操作小结
2014/01/23 Javascript
一个网页标题title的闪动提示效果实现思路
2014/03/22 Javascript
javascript定时器完整实例
2015/02/10 Javascript
一张Web前端的思维导图分享
2015/07/03 Javascript
详解AngularJS中的http拦截
2016/02/09 Javascript
浅谈JS中的bind方法与函数柯里化
2016/08/10 Javascript
javascript实现多张图片左右无缝滚动效果
2017/03/22 Javascript
微信小程序-横向滑动scroll-view隐藏滚动条
2017/04/20 Javascript
JavaScript闭包的简单应用
2017/09/01 Javascript
fetch 如何实现请求数据
2018/12/20 Javascript
javascript 构建模块化开发过程解析
2019/09/11 Javascript
element中Steps步骤条和Tabs标签页关联的解决
2020/12/08 Javascript
vue使用require.context实现动态注册路由
2020/12/25 Vue.js
[01:01:23]完美世界DOTA2联赛PWL S2 Forest vs FTD.C 第一场 11.26
2020/11/30 DOTA
python if not in 多条件判断代码
2016/09/21 Python
Pycharm学习教程(7)虚拟机VM的配置教程
2017/05/04 Python
详解Python中的动态属性和特性
2018/04/07 Python
kafka-python批量发送数据的实例
2018/12/27 Python
python3 使用Opencv打开USB摄像头,配置1080P分辨率的操作
2019/12/11 Python
pytorch实现Tensor变量之间的转换
2020/02/17 Python
python 子类调用父类的构造函数实例
2020/03/12 Python
Python Pandas数据分析工具用法实例
2020/11/05 Python
英国打印机墨水和碳粉商店:Printerinks
2017/06/30 全球购物
教育项目合作协议书格式
2014/10/17 职场文书
小学优秀学生评语
2014/12/29 职场文书
5.12护士节活动总结
2015/02/10 职场文书
讲座通知范文
2015/04/23 职场文书
《中彩那天》教学反思
2016/02/24 职场文书
厉害!这是Redis可视化工具最全的横向评测
2021/07/15 Redis