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 相关文章推荐
NiftyCube——轻松实现圆角边框
Feb 20 Javascript
再谈javascript 动态添加样式规则 W3C校检
Dec 25 Javascript
js验证整数加保留小数点的简单实例
Dec 02 Javascript
在页面加载完成后通过jquery给多个span赋值
May 21 Javascript
jQuery .tmpl() 用法示例介绍
Aug 21 Javascript
JavaScript中的ArrayBuffer详细介绍
Dec 08 Javascript
JavaScript将Web页面内容导出到Word及Excel的方法
Feb 13 Javascript
jQuery地图map悬停显示省市代码分享
Aug 20 Javascript
JS实现新浪博客左侧的Blog管理菜单效果代码
Oct 22 Javascript
JS设置cookie、读取cookie
Feb 24 Javascript
JavaScript过滤字符串中的中文与空格方法汇总
Mar 07 Javascript
vue、react等单页面项目部署到服务器的方法及vue和react的区别
Sep 29 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
ajax+php打造进度条代码[readyState各状态说明]
2010/04/12 PHP
PHP XML操作的各种方法解析(比较详细)
2010/06/17 PHP
PHP IDE PHPStorm配置支持友好Laravel代码提示方法
2015/05/12 PHP
WordPress开发中用于获取近期文章的PHP函数使用解析
2016/01/05 PHP
详解php命令注入攻击
2019/04/06 PHP
jQuery Validation插件remote验证方式的Bug解决
2010/07/01 Javascript
jQuery easyui datagrid动态查询数据实例讲解
2013/02/26 Javascript
防止浏览器记住用户名及密码的简单实用方法
2013/04/22 Javascript
Javascript验证上传图片大小[前台处理]
2014/07/18 Javascript
CSS图片响应式 垂直水平居中
2015/08/14 Javascript
浅谈javascript 函数表达式和函数声明的区别
2016/01/05 Javascript
jQuery Timelinr实现垂直水平时间轴插件(附源码下载)
2016/02/16 Javascript
xcode中获取js文件的路径方法(推荐)
2016/11/05 Javascript
使用Ajax生成的Excel文件并下载的实例
2016/11/21 Javascript
Vue实现的父组件向子组件传值功能示例
2019/01/19 Javascript
vue前后分离调起微信支付
2019/07/29 Javascript
解决layui追加或者动态修改的表单元素“没效果”的问题
2019/09/18 Javascript
微信小程序如何实现在线客服功能
2019/10/16 Javascript
React实现阿里云OSS上传文件的示例
2020/08/10 Javascript
解决vue请求接口第一次成功,第二次失败问题
2020/09/08 Javascript
python学习笔记之列表(list)与元组(tuple)详解
2017/11/23 Python
Python实现pdf文档转txt的方法示例
2018/01/19 Python
Python3 列表,数组,矩阵的相互转换的方法示例
2019/08/05 Python
python 数据提取及拆分的实现代码
2019/08/26 Python
django框架forms组件用法实例详解
2019/12/10 Python
如何基于Python实现自动扫雷
2020/01/06 Python
解决Jupyter因卸载重装导致的问题修复
2020/04/10 Python
python利用后缀表达式实现计算器功能
2021/02/22 Python
jupyter notebook指定启动目录的方法
2021/03/02 Python
华为俄罗斯官方网上商城:购买Huawei手机和平板
2017/04/21 全球购物
阳光体育活动方案
2014/02/16 职场文书
交通事故调解协议书
2014/04/16 职场文书
终止或解除劳动合同及劳动关系的证明书
2014/10/06 职场文书
2015年行风建设工作总结
2015/05/15 职场文书
家庭聚会祝酒词
2015/08/11 职场文书
爱护公物主题班会
2015/08/17 职场文书