vue中的provide/inject的学习使用


Posted in Javascript onMay 09, 2018

前言

最近在看element-ui的源码,发现了一个这样的属性:inject.遂查看官网provider/inject

provider/inject:简单的来说就是在父组件中通过provider来提供变量,然后在子组件中通过inject来注入变量。

需要注意的是这里不论子组件有多深,只要调用了inject那么就可以注入provider中的数据。而不是局限于只能从当前父组件的prop属性来获取数据。

下面我们来验证下猜想:

first:定义一个parent component

<template>
 <div>
<childOne></childOne>
 </div>
</template>

<script>
 import childOne from '../components/test/ChildOne'
 export default {
  name: "Parent",
  provide: {
   for: "demo"
  },
  components:{
   childOne
  }
 }

在这里我们在父组件中provide for这个变量。

second 定义一个子组件

<template>
 <div>
  {{demo}}
  <childtwo></childtwo>
 </div>
</template>

<script>
 import childtwo from './ChildTwo'
 export default {
  name: "childOne",
  inject: ['for'],
  data() {
   return {
    demo: this.for
   }
  },
  components: {
   childtwo
  }
 }
</script>

third 定义另一个子组件

<template>
 <div>
  {{demo}}
 </div>
</template>

<script>
 export default {
  name: "",
  inject: ['for'],
  data() {
   return {
    demo: this.for
   }
  }
 }
</script>

在2个子组件中我们使用jnject注入了provide提供的变量for,并将它提供给了data属性。

这里官网注明例子只工作在 Vue 2.2.1 或更高版本。低于这个版本时,注入的值会在 props 和 data 初始化之后得到。

运行之后看下结果

vue中的provide/inject的学习使用

从上面这个例子可以看出,只要在父组件中调用了,那么在这个父组件生效的生命周期内,所有的子组件都可以调用inject来注入父组件中的值。

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

Javascript 相关文章推荐
修改js Calendar日历控件 兼容IE9/谷歌/火狐
Jan 04 Javascript
javascript:void(0)的问题使用探讨
Apr 10 Javascript
jQuery验证插件validation使用指南
Apr 21 Javascript
jQuery实现带渐显效果的人物多级关系图代码
Oct 16 Javascript
JavaScript编写带旋转+线条干扰的验证码脚本实例
May 30 Javascript
微信小程序 选择器(时间,日期,地区)实例详解
Nov 16 Javascript
js中new一个对象的过程
Feb 20 Javascript
js仿淘宝评价评分功能
Feb 28 Javascript
vue.js如何将echarts封装为组件一键使用详解
Oct 10 Javascript
24个ES6方法解决JS实际开发问题(小结)
May 31 Javascript
基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件功能
Feb 23 Vue.js
react中的DOM操作实现
Jun 30 Javascript
详解Vue 多级组件透传新方法provide/inject
May 09 #Javascript
自定义vue组件发布到npm的方法
May 09 #Javascript
React Navigation 使用中遇到的问题小结
May 08 #Javascript
官方推荐react-navigation的具体使用详解
May 08 #Javascript
JavaScript callback回调函数用法实例分析
May 08 #Javascript
JavaScript累加、迭代、穷举、递归等常用算法实例小结
May 08 #Javascript
vue-cli 引入、配置axios的方法
May 08 #Javascript
You might like
PHP发明人谈MVC和网站设计架构 貌似他不支持php用mvc
2011/06/04 PHP
PHP 如何获取二维数组中某个key的集合
2014/06/03 PHP
PHP 二维关联数组根据其中一个字段排序(推荐)
2017/04/04 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
javascript事件问题
2009/09/05 Javascript
jQuery 学习6 操纵元素显示效果的函数
2010/02/07 Javascript
js判断IE浏览器版本过低示例代码
2013/11/22 Javascript
node.js中的path.basename方法使用说明
2014/12/09 Javascript
js实现的二级横向菜单条实例
2015/08/22 Javascript
Active控件问题小结(附解决办法)
2016/06/09 Javascript
Bootstrap DateTime Picker日历控件简单应用
2017/03/25 Javascript
vue与TypeScript集成配置最简教程(推荐)
2017/10/17 Javascript
js实现左右两侧浮动广告
2018/07/09 Javascript
jQuery实现基本隐藏与显示效果的方法详解
2018/09/05 jQuery
JavaScript实现英语单词题库
2019/12/24 Javascript
vue导入.md文件的步骤(markdown转HTML)
2020/12/31 Vue.js
[01:14]2019完美世界城市挑战赛(秋季赛)全国总决赛精彩花絮
2020/01/08 DOTA
Windows上使用virtualenv搭建Python+Flask开发环境
2016/06/07 Python
python 查找字符串是否存在实例详解
2017/01/20 Python
python3使用SMTP发送简单文本邮件
2018/06/19 Python
Python2实现的图片文本识别功能详解
2018/07/11 Python
Python 多维List创建的问题小结
2019/01/18 Python
使用Python计算玩彩票赢钱概率
2019/06/26 Python
django 中的聚合函数,分组函数,F 查询,Q查询
2019/07/25 Python
Python中zip()函数的简单用法举例
2019/09/02 Python
django列表筛选功能的实现代码
2020/03/27 Python
sklearn线性逻辑回归和非线性逻辑回归的实现
2020/06/09 Python
浅谈django不使用restframework自定义接口与使用的区别
2020/07/15 Python
解决python运行效率不高的问题
2020/07/20 Python
Python 如何操作 SQLite 数据库
2020/08/17 Python
广播电视新闻学专业应届生求职信
2013/10/08 职场文书
元宵节晚会主持人串词
2014/03/25 职场文书
服装设计专业求职信
2014/06/16 职场文书
婚前保证书范文
2015/02/28 职场文书
2015年采购部工作总结
2015/04/23 职场文书
2015年青年教师工作总结
2015/05/25 职场文书