今天看vue官方教程中的作用域插槽的内容,看了半天都没理解内容,只好动手码代码验证理解。动手是最能促进理解的方法,再去看原文,你会发现都是翻译惹的祸,翻译的真是有点差劲。

作用域插槽,主要是为了在父组件中访问子组件中的数据而提出来的一种方案。

一、<slot> 元素上动态绑定要在外面访问的 对象

首先要在子组件中<slot> 元素上动态绑定一个你要在外面访问的 对象属性,例如下面的例子中我们要在父组件中访问user对象。如果不进行绑定,在外面是访问不了的

Vue.component("slot_demo",{data: function() {return {user : {firstName: "Liu", lastName: "Tao"}}},template : `<span><span>子组件:</span><slot :user="user">{{ user.lastName }}</slot></span>`})

二、父组件中定义一个名字,通过该名字访问子组件中的对象

名字可以随便起,比如下面的名字为slotInnerData,那么想访问上面第一步中的子组件绑定的user对象,只需要在正常的访问形式之前加入该名字限定就可以访问了。

<div id="slot_demo" ><slot_demo v-slot:default="slotInnerData">{{slotInnerData.user.firstName}}</slot_demo></div>

三、更方便的访问方式

上面的访问方式要多写一个名称,官方文档中给出了一种更方便的访问组件的方式。直接使用花括号引用子组件中的对象名称,然后就可以自由的访问了。

 <slot_demo v-slot:default="{user}">{{user.firstName}}</slot_demo>

四、在父组件中使用默认对象值

可以定义默认内容,用于插槽 prop 是 undefined 的情形。第一节中说了在slot中必须绑定要在父组件中访问的对象,如果没有绑定,那么使用默认对象值的方式就可以派的上用场了。

 <div id="slot_demo" ><slot_demo v-slot:default="{user = {firstName:'Guest'}}">{{user.firstName}}</slot_demo></div>

此时,如果子组件没有绑定user对象,那么上面代码中的user就是取的这里面的默认值。

五、结束

以上就是vue中作用域插槽使用上的关键知识点。当然它的更大用处,引用官网的一句话来说明

插槽 prop 允许我们将插槽转换为可复用的模板,这些模板可以基于输入的 prop 渲染出不同的内容。这在设计封装数据逻辑同时允许父级组件自定义部分布局的可复用组件时是最有用的。

vue作用域插槽使用详解相关推荐

  1. Vue中作用域插槽solt详解

  2. vue基础扩展8--solt详解

    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script><title& ...

  3. 加载vue文件步骤_vue中.vue文件解析步骤详解

    这次给大家带来vue中.vue文件解析步骤详解,vue中.vue文件解析的注意事项有哪些,下面就是实战案例,一起来看一下. 我们平时写的 .vue 文件称为 SFC(Single File Compo ...

  4. 实例化vue发生了什么?(详解vue生命周期)

    实例化vue发生了什么?(详解vue生命周期) 本文将对vue的生命周期进行详细的讲解,让你了解一个vue实例的诞生都经历了什么~ 我在Github上建立了一个存放vue笔记的仓库,以后会陆续更新一些 ...

  5. vue中mint-ui使用详解

    这次给大家带来vue中mint-ui使用详解,vue中mint-ui使用的注意事项有哪些,下面就是实战案例,一起来看一下. mint-ui在vue中的使用,供大家参考,具体内容如下 首先放上mint- ...

  6. Vue路由传参详解(params 与 query)

    Vue路由传参详解(params 与 query) 前言: 路由传参分为 params 传参与 query 传参 params 传参类似于网络请求中的 post 请求,params 传过去的参数不会显 ...

  7. vue如何过滤html标签,Vue过滤器filters使用详解

    这次给大家带来Vue过滤器filters使用详解,Vue过滤器filters使用的注意事项有哪些,下面就是实战案例,一起来看一下. 示例代码 采用vue单文件组件,使用moment插件格式化日期 {{ ...

  8. mixins php,vue的mixins属性详解

    这篇文章主要介绍了vue的mixins属性详解,现在分享给大家,也给大家做个参考. 首先先给出官网 https://vuejs.org/v2/guide/mixins.html 今天在开发项目的时候要 ...

  9. ant design pro vue 动态路由 流程详解

    ant design pro vue 动态路由 流程详解 前言 流程图 流程1 src/permission.js 流程2 src/store/modules/user.js 流程3 src/perm ...

最新文章

  1. 交互设计实用指南系列 – 我们眼中的交互设计
  2. 输入参数的数目不足_机器学习算法—KMEANS算法原理及阿里云PAI平台算法模块参数说明...
  3. 对二分法思想的体会 及 结队编程情况汇报
  4. sonar 代理_Sonar
  5. 【Linux】处理数据文件
  6. JavaScript对象的创建之外部属性定义方式(基于已有对象扩充其属性和方法)
  7. [USACO2011 Feb] Cow Line
  8. 远程桌面怎样复制本地文件听语音
  9. 用C语言实现C++中类的封装继承多态
  10. Linux系统下常用的中文输入法
  11. 怎么进入计算机开发doc界面,电脑怎么进入dos界面(电脑进入dos界面操作方法)...
  12. vba 定义类_excel编程系列基础:认识VBA的编辑器VBE
  13. prince2 成功的项目管理_学员心得 | 宋文彬:学习PRINCE2的心路历程
  14. java基础学安卓开发_Android开发学习路线之Java基础学习
  15. java jws web_java 用jws发布一个简单的webservice
  16. Cesium实现聚光灯向舞台照射并旋转运动的效果含全部源码
  17. 运行TensorFlow出现The TensorFlow library wasn‘t compiled to use FMA instructions)代码
  18. centos 7 dnf命令的安装
  19. ABB机器人二次开发:基于FlexPendant SDK的示教器功能开发基础
  20. 初识HTML之标记2(标题标记、段落标记、引用文本标记)

热门文章

  1. 魔众轻量论坛系统 v4.3.0 常规优化升级 系统更稳定
  2. 删除数据库中的重复数据,只保留一条
  3. 搭建Linux idea激活服务器(2018.1版本)
  4. PHP LFI 利用临时文件 Getshell 姿势
  5. 新版火狐 拖 功能_Firefox 38的新增功能
  6. uni-app中使用mapbox地图
  7. 基于Android实现高德地图校内导航出行app项目演示【项目源码+简要论文说明】分享
  8. 应收款项(应收票据、应收账款、其他应收款等)会计处理分录
  9. 《University Calculus》-chaper13-向量场中的积分-线积分
  10. Python爬虫入门8:BeautifulSoup获取html标签相关属性