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 相关文章推荐
QUnit jQuery的TDD框架
Nov 04 Javascript
String.prototype实现的一些javascript函数介绍
Nov 22 Javascript
使用jQuery实现的掷色子游戏动画效果
Mar 14 Javascript
javascript封装addLoadEvent实现页面同时加载执行多个函数的方法
Jul 25 Javascript
使用JavaScript获取Request中参数的值方法
Sep 27 Javascript
微信小程序(三):网络请求
Jan 13 Javascript
JS实现的简单图片切换功能示例【测试可用】
Feb 14 Javascript
vue-router 导航钩子的具体使用方法
Aug 31 Javascript
基于Vue 2.0 监听文本框内容变化及ref的使用说明介绍
Aug 24 Javascript
解决vue项目使用font-awesome,build后路径的问题
Sep 01 Javascript
浅谈React之状态(State)
Sep 19 Javascript
js实现简单的秒表
Jan 16 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中使用redis
2013/11/04 PHP
PHP采用get获取url汉字出现乱码的解决方法
2014/11/13 PHP
Laravel中间件实现原理详解
2016/10/09 PHP
PHP实现文件上传功能实例代码
2017/05/18 PHP
Laravel Eloquent ORM 多条件查询的例子
2019/10/10 PHP
jQuery UI Dialog控件中的表单无法正常提交的解决方法
2010/12/19 Javascript
基于jQuery架构javascript基础体系
2011/01/01 Javascript
JavaScript 用Node.js写Shell脚本[译]
2012/09/20 Javascript
js的alert样式如何更改如背景颜色
2014/01/22 Javascript
JavaScript中的Math 使用介绍
2014/04/21 Javascript
javascript 构造函数方式定义对象
2015/01/02 Javascript
Javascript中的作用域和上下文深入理解
2015/07/03 Javascript
基于javascript实现页面加载loading效果
2020/09/15 Javascript
jQuery qrcode生成二维码的方法
2016/04/03 Javascript
微信小程序 刷新上拉下拉不会断详细介绍
2017/05/11 Javascript
基于jQuery ztree实现表格风格的树状结构
2018/08/31 jQuery
浅谈Vue.js 中的 v-on 事件指令的使用
2018/11/25 Javascript
element-ui 文件上传修改文件名的方法示例
2019/11/05 Javascript
python list使用示例 list中找连续的数字
2014/01/27 Python
2款Python内存检测工具介绍和使用方法
2014/06/01 Python
Python线程指南详细介绍
2017/01/05 Python
Python中一些不为人知的基础技巧总结
2018/05/19 Python
pyqt5的QWebEngineView 使用模板的方法
2018/08/18 Python
Python 经典面试题 21 道【不可错过】
2018/09/21 Python
33个Python爬虫项目实战(推荐)
2019/07/08 Python
Python 继承,重写,super()调用父类方法操作示例
2019/09/29 Python
Pycharm内置终端及远程SSH工具的使用教程图文详解
2020/03/19 Python
python3 kubernetes api的使用示例
2021/01/12 Python
CSS3 Calc实现滚动条出现页面不跳动问题
2017/09/14 HTML / CSS
Wiggle中国:英国骑行、跑步、游泳 & 铁三运动装备专卖网店
2016/08/02 全球购物
大学生就业自荐信
2013/10/26 职场文书
奉献爱心演讲稿
2014/09/04 职场文书
学校工会工作总结2015
2015/05/19 职场文书
统招统分证明
2015/06/23 职场文书
毕业生自荐求职信书写的技巧
2019/08/26 职场文书
Redis实现订单过期删除的方法步骤
2022/06/05 Redis