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 相关文章推荐
豆瓣网的jquery代码实例
Jun 15 Javascript
extjs 学习笔记(三) 最基本的grid
Oct 15 Javascript
JavaScript 以对象为索引的关联数组
May 19 Javascript
ajax的hide隐藏问题解决方法
Dec 11 Javascript
js图片预加载示例
Apr 30 Javascript
javascript在当前窗口关闭前检测窗口是否关闭
Sep 29 Javascript
浅析jquery unbind()方法移除元素绑定的事件
May 24 Javascript
详解Bootstrap的iCheck插件checkbox和radio
Aug 24 Javascript
使用bootstrap实现多窗口和拖动效果
Sep 22 Javascript
如何学JavaScript?前辈的经验之谈
Dec 28 Javascript
详解微信UnionID作用
May 15 Javascript
一看就会的vuex实现登录验证(附案例)
Jan 09 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导出Excel的小经验 完美解决乱码问题
2013/06/10 PHP
PHP与Web页面的交互示例详解二
2020/08/04 PHP
jQuery EasyUI 中文API Button使用实例
2010/04/14 Javascript
jQuery EasyUI API 中文文档 - ComboTree组合树
2011/10/11 Javascript
json数据的列循环示例
2013/09/06 Javascript
jQuery不使用插件及swf实现无刷新文件上传
2014/12/08 Javascript
jquery验证手机号是否正确实例讲解
2015/11/17 Javascript
javascript基础知识
2016/06/07 Javascript
jQuery用noConflict代替$的实现方法
2017/04/12 jQuery
vue-router判断页面未登录自动跳转到登录页的方法示例
2018/11/04 Javascript
js实现mp3录音通过websocket实时传送+简易波形图效果
2020/06/12 Javascript
解决vue中的无限循环问题
2020/07/27 Javascript
vue中是怎样监听数组变化的
2020/10/24 Javascript
ant design vue 表格table 默认勾选几项的操作
2020/10/31 Javascript
Vue 解决在element中使用$notify在提示信息中换行问题
2020/11/11 Javascript
[01:29]2014DOTA2展望TI 剑指西雅图DK战队专访
2014/06/30 DOTA
[56:41]iG vs Winstrike 2018国际邀请赛小组赛BO2 第二场
2018/08/17 DOTA
TensorFlow中权重的随机初始化的方法
2018/02/11 Python
tensorflow实现加载mnist数据集
2018/09/08 Python
Python图像的增强处理操作示例【基于ImageEnhance类】
2019/01/03 Python
Python 实现自动导入缺失的库
2019/10/29 Python
利用django model save方法对未更改的字段依然进行了保存
2020/03/28 Python
Python如何把Spark数据写入ElasticSearch
2020/04/18 Python
Python参数传递对象的引用原理解析
2020/05/22 Python
什么是Python中的顺序表
2020/06/02 Python
Python下使用Trackbar实现绘图板
2020/10/27 Python
GE设备配件:GE Appliance Parts(家电零件、配件和滤水器)
2018/11/28 全球购物
德国最大的服装、鞋子和配件在线商店之一:Outfits24
2019/07/23 全球购物
Monica Vinader官网:英国轻奢珠宝品牌
2020/02/05 全球购物
FirstCry阿联酋儿童和婴儿产品网上购物:FirstCry.ae
2021/02/22 全球购物
人事任命书怎么写
2014/06/05 职场文书
2015年度党风廉政建设工作情况汇报
2015/01/02 职场文书
小学二年级数学教学计划
2015/01/20 职场文书
Python-typing: 类型标注与支持 Any类型详解
2021/05/10 Python
Python可视化学习之matplotlib内置单颜色
2022/02/24 Python
zabbix配置nginx监控的实现
2022/05/25 Servers