如何理解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 相关文章推荐
购物车选中得到价格实现示例
Jan 26 Javascript
toggle()隐藏问题的解决方法
Feb 17 Javascript
Javascript基础教程之数据类型转换
Jan 18 Javascript
详解基于javascript实现的苹果系统底部菜单
Dec 02 Javascript
JS中Swiper的使用和轮播图效果
Aug 11 Javascript
React Native之TextInput组件解析示例
Aug 22 Javascript
基于javascript中的typeof和类型判断(详解)
Oct 27 Javascript
浅谈Vue数据响应思路之数组
Nov 06 Javascript
JS获取今天是本月第几周、本月共几周、本月有多少天、是今年的第几周、是今年的第几天的示例代码
Dec 05 Javascript
ES6中定义类和对象的方法示例
Jul 31 Javascript
浅谈如何优雅处理JavaScript异步错误
Nov 12 Javascript
js找出5个数中最大的一个数和倒数第二大的数实现方法示例小结
Mar 04 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用mysql数据库存储session的代码
2010/03/05 PHP
解析php取整的几种方式
2013/06/25 PHP
浅谈PHP中其他类型转化为Bool类型
2016/03/28 PHP
php用xpath解析html的代码实例讲解
2019/02/14 PHP
PHP实现将上传图片自动缩放到指定分辨率,并保持清晰度封装类示例
2019/06/17 PHP
firefo xml 读写实现js代码
2009/06/11 Javascript
jQuery验证Checkbox是否选中的代码 推荐
2011/09/04 Javascript
JS编程小常识很有用
2012/11/26 Javascript
jquery 模板的应用示例
2013/11/12 Javascript
jquery select 设置默认选中的示例代码
2014/02/07 Javascript
js获取时间精确到秒(年月日)
2016/03/16 Javascript
javascript中Date对象应用之简易日历实现
2016/07/12 Javascript
MUI顶部选项卡的用法(tab-top-webview-main)详解
2017/10/08 Javascript
解决循环中setTimeout执行顺序的问题
2018/06/20 Javascript
Vue源码探究之状态初始化
2018/11/14 Javascript
jquery ajax 请求小技巧实例分析
2019/11/11 jQuery
JS代码触发事件代码实例
2020/01/02 Javascript
解决新建一个vue项目过程中遇到的问题
2020/10/22 Javascript
[28:48]《真视界》- 2017年国际邀请赛
2017/09/27 DOTA
python实现带验证码网站的自动登陆实现代码
2015/01/12 Python
使用Python的Tornado框架实现一个一对一聊天的程序
2015/04/25 Python
Pycharm学习教程(2) 代码风格
2017/05/02 Python
Python cookbook(数据结构与算法)保存最后N个元素的方法
2018/02/13 Python
Django配置celery(非djcelery)执行异步任务和定时任务
2018/07/16 Python
使用k8s部署Django项目的方法步骤
2019/01/14 Python
python创建ArcGIS shape文件的实现
2019/12/06 Python
python GUI库图形界面开发之PyQt5表格控件QTableView详细使用方法与实例
2020/03/01 Python
Python图像阈值化处理及算法比对实例解析
2020/06/19 Python
Expected conditions模块使用方法汇总代码解析
2020/08/13 Python
通过CSS3的object-fit来调整图片适配尺寸的技巧简介
2016/02/27 HTML / CSS
班组长工作职责
2013/12/25 职场文书
交通事故检查书范文
2014/01/30 职场文书
农村优秀教师事迹材料
2014/08/27 职场文书
机关单位工作失职检讨书
2014/11/20 职场文书
小学体育课教学反思
2016/02/16 职场文书
xhunter1.sys可以删除嘛? win11提示xhunter1.sys驱动不兼容解决办法
2022/09/23 数码科技