Vue作用域插槽实现方法及作用详解


Posted in Javascript onJuly 08, 2020

默认插槽和具名插槽的概念比较好理解,这里主要以官方文档的案例来讲解一下作用域插槽。

首先是有一个currentUser的组件:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>
  <div id="app">
    <current-user>
      {{ user.firstName }}
    </current-user>
  </div>
  <script src="vue.min.js"></script>
  <script>
    Vue.component('currentUser', {
      template: `
        <span>
          <slot>{{ user.lastName }}</slot>
        </span>
      `,
      data() {
        return {
          user: {
            firstName: 'w',
            lastName: 'ts'
          }
        }
      }
    })

    new Vue({
      el: '#app'
    })
  </script>
</body>
</html>

然而该页面无法正常工作,因为只有currentUser可以访问到user,出错的地方在这里:

Vue作用域插槽实现方法及作用详解

然后,引入一个插槽prop:

<span>
  <slot :user="user">
    {{ user.lastName }}
  </slot>
</span>

接着,需要给v-slot带一个值来定义我们提供的插槽 prop 的名字:

<current-user>
  <template v-slot="wts">
    {{ wts.user.firstName }}
  </template>
</current-user>

简单的讲作用域插槽就是让插槽内容能够访问子组件中才有的数据,修改后便可以正常工作了。

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

Javascript 相关文章推荐
js实现页面打印功能实例代码(附去页眉页脚功能代码)
Dec 15 Javascript
统计jQuery中各字符串出现次数的工具
May 03 Javascript
Jquery自定义button按钮的几种方法
Jun 11 Javascript
JavaScript中textRange对象使用方法小结
Mar 24 Javascript
bootstrap3 兼容IE8浏览器!
May 02 Javascript
微信小程序 MD5加密登录密码详解及实例代码
Jan 12 Javascript
JQuery实现定时刷新功能代码
May 09 jQuery
jQuery之动画ajax事件(实例讲解)
Jul 18 jQuery
JS使用正则表达式获取小括号、中括号及花括号内容的方法示例
Jun 01 Javascript
Intellij IDEA搭建vue-cli项目的方法步骤
Oct 20 Javascript
微信小程序 扭蛋抽奖机css3动画实现详解
Jul 19 Javascript
vue实现表单未编辑或未保存离开弹窗提示功能
Apr 08 Javascript
Vue Render函数创建DOM节点代码实例
Jul 08 #Javascript
实例讲解React 组件生命周期
Jul 08 #Javascript
详细分析React 表单与事件
Jul 08 #Javascript
详解JavaScript之ES5的继承
Jul 08 #Javascript
jQuery使用jsonp实现百度搜索的示例代码
Jul 08 #jQuery
微信小程序拖拽排序列表的示例代码
Jul 08 #Javascript
基于javascript canvas实现五子棋游戏
Jul 08 #Javascript
You might like
php中使用preg_replace函数匹配图片并加上链接的方法
2013/02/06 PHP
PHP+Mysql树型结构(无限分类)数据库设计的2种方式实例
2014/07/15 PHP
PHP根据两点间的经纬度计算距离
2014/10/31 PHP
PHP中让json_encode不自动转义斜杠“/”的方法
2017/02/28 PHP
读jQuery之十四 (触发事件核心方法)
2011/08/23 Javascript
js 幻灯片的实现
2011/12/06 Javascript
2014最热门的JavaScript代码高亮插件推荐
2014/11/25 Javascript
js判断某个方法是否存在实例代码
2015/01/10 Javascript
JavaScript实现文字跟随鼠标特效
2015/08/06 Javascript
js实现input框文字动态变换显示效果
2015/08/19 Javascript
jquery实现LED广告牌旋转系统图片切换效果代码分享
2015/08/26 Javascript
js轮播图代码分享
2016/07/14 Javascript
jQuery File Upload文件上传插件使用详解
2016/12/06 Javascript
jQuery EasyUI Draggable拖动组件
2017/03/01 Javascript
利用jqgrid实现上移下移单元格功能
2018/11/07 Javascript
对vuex中getters计算过滤操作详解
2019/11/06 Javascript
vue下拉刷新组件的开发及slot的使用详解
2020/12/23 Vue.js
[02:44]DOTA2英雄基础教程 克林克兹
2014/01/15 DOTA
Python单元测试框架unittest使用方法讲解
2015/04/13 Python
Django choices下拉列表绑定实例
2020/03/13 Python
Python中免验证跳转到内容页的实例代码
2020/10/23 Python
html5实现的便签特效(实战分享)
2013/11/29 HTML / CSS
马来西亚网上购物平台:ezbuy
2018/02/13 全球购物
世界排名第一的万圣节服装店:Spirit Halloween
2018/10/16 全球购物
整个世界的设计师家具在哈恩:Designathome
2019/03/25 全球购物
惠普新加坡官方商店:HP Singapore
2020/04/17 全球购物
维德科技C#面试题笔试题
2015/12/09 面试题
当x.equals(y)等于true时,x.hashCode()与y.hashCode()可以不相等,这句话对不对
2015/05/02 面试题
农业资源与环境专业自荐信范文
2013/12/30 职场文书
粗加工管理制度
2014/02/04 职场文书
劳动争议和解协议书范本
2014/11/20 职场文书
护士求职简历自我评价
2015/03/10 职场文书
稽核岗位职责范本
2015/04/13 职场文书
2015年学校政教工作总结
2015/07/20 职场文书
2015年城管执法工作总结
2015/07/23 职场文书
2015年中秋寄语
2015/07/31 职场文书