如何理解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简单实现用户注册信息的校验代码
Nov 15 Javascript
关于jquery中全局函数each使用介绍
Dec 10 Javascript
jquery插件推荐浏览器嗅探userAgent
Nov 09 Javascript
深入解析JavaScript的闭包机制
Oct 20 Javascript
BootStrap和jQuery相结合实现可编辑表格
Apr 21 Javascript
jQuery实现手势解锁密码特效
Aug 14 jQuery
详解jquery插件jquery.viewport.js学习使用方法
Sep 08 jQuery
node实现生成带参数的小程序二维码并保存到本地功能示例
Dec 05 Javascript
vue+koa2实现session、token登陆状态验证的示例
Aug 30 Javascript
简述Vue中容易被忽视的知识点
Dec 09 Javascript
详解为element-ui的Select和Cascader添加弹层底部操作按钮
Feb 07 Javascript
angular中的post请求处理示例详解
Jun 30 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&amp;MYSQL留言板源码
2020/07/19 PHP
Windows下IIS6/Apache2.2.4+MySQL5.2+PHP5.2.1安装配置方法
2007/05/03 PHP
PHP下用rmdir实现删除目录的三种方法小结
2008/04/20 PHP
php实现单链表的实例代码
2013/03/22 PHP
php读取目录所有文件信息dir示例
2014/03/18 PHP
PHP面向对象程序设计OOP继承用法入门示例
2016/12/27 PHP
PHP简单实现解析xml为数组的方法
2018/05/02 PHP
jQuery ui 1.7更新小结
2009/08/15 Javascript
window.js 主要包含了页面的一些操作
2009/12/23 Javascript
改变隐藏的input中value值的方法
2014/03/19 Javascript
多个checkbox被选中时如何判断是否有自己想要的
2014/09/22 Javascript
浅谈JavaScript数据类型及转换
2015/02/28 Javascript
AngularJS 执行流程详细介绍
2016/08/18 Javascript
jquery-mobile基础属性与用法详解
2016/11/23 Javascript
关于angular js_$watch监控属性和对象详解
2017/04/24 Javascript
vue2.0 常用的 UI 库实例讲解
2017/12/12 Javascript
vue用Object.defineProperty手写一个简单的双向绑定的示例
2018/07/09 Javascript
angularJs中orderBy筛选以及filter过滤数据的方法
2018/09/30 Javascript
使用JS location实现搜索框历史记录功能
2019/12/23 Javascript
2019最新21个MySQL高频面试题介绍
2020/02/06 Javascript
[49:35]LGD vs OG 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
[36:09]Secret vs VG 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.24
2019/09/10 DOTA
Python使用Scrapy保存控制台信息到文本解析
2017/12/27 Python
python3使用matplotlib绘制条形图
2020/03/25 Python
Python lambda表达式原理及用法解析
2020/08/18 Python
使用CSS3来匹配横屏竖屏的简单方法
2015/08/04 HTML / CSS
项目经理岗位职责
2013/11/11 职场文书
车间班组长岗位职责
2013/11/13 职场文书
小小的船教学反思
2014/02/21 职场文书
《油菜花开了》教学反思
2014/02/22 职场文书
反邪教标语
2014/06/23 职场文书
政府个人对照检查材料思想汇报
2014/10/08 职场文书
综合素质评价思想道德自我评价
2015/03/09 职场文书
幼儿园中班教育随笔
2015/08/14 职场文书
2016年社区国庆节活动总结
2016/04/01 职场文书
2016年百日安全生产活动总结
2016/04/06 职场文书