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 相关文章推荐
通过正则表达式实现表单验证是否为中文
Feb 18 Javascript
javascript模拟枚举的简单实例
Mar 06 Javascript
用js读写cookie的简单方法(推荐)
Aug 08 Javascript
JS闭包用法实例分析
Mar 27 Javascript
AngularJS实现的select二级联动下拉菜单功能示例
Oct 25 Javascript
详解webpack编译多页面vue项目的配置问题
Dec 11 Javascript
vue.js做一个简单的编辑菜谱功能
May 08 Javascript
vue实现与安卓、IOS交互的方法
Nov 02 Javascript
详解Vue内部怎样处理props选项的多种写法
Nov 06 Javascript
fetch 如何实现请求数据
Dec 20 Javascript
jQuery实现动态添加和删除input框代码实例
Mar 29 jQuery
使用JQuery自动完成插件Auto Complete详解
Jun 18 jQuery
详解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 根据url自动生成缩略图并处理高并发问题
2014/01/23 PHP
php安装扩展mysqli的实现步骤及报错解决办法
2017/09/23 PHP
php实现表单提交上传文件功能
2018/05/28 PHP
Javascript 的addEventListener()及attachEvent()区别分析
2009/05/21 Javascript
javascript中callee与caller的用法和应用场景
2010/12/08 Javascript
用Mootools获得操作索引的两种方法分享
2011/12/12 Javascript
jquery中checkbox全选失效的解决方法
2014/12/26 Javascript
AngularJS进行性能调优的7个建议
2015/12/28 Javascript
微信小程序 富文本转文本实例详解
2016/10/24 Javascript
JS获取多维数组中相同键的值实现方法示例
2017/01/06 Javascript
JS实现标签页切换效果
2017/05/04 Javascript
详解react服务端渲染(同构)的方法
2017/09/21 Javascript
React Native 混合开发多入口加载方式详解
2019/09/23 Javascript
vue表单中遍历表单操作按钮的显示隐藏示例
2019/10/30 Javascript
基于Vue sessionStorage实现保留搜索框搜索内容
2020/06/01 Javascript
vue-router 2.0 跳转之router.push()用法说明
2020/08/12 Javascript
基于JS实现快速读取TXT文件
2020/08/25 Javascript
[01:19]2014DOTA2国际邀请赛 采访TITAN战队ohaiyo 能赢DK很幸运
2014/07/12 DOTA
[02:38]DOTA2 夜魇暗潮2020活动介绍官方视频
2020/11/04 DOTA
对Python 数组的切片操作详解
2018/07/02 Python
浅析关于Keras的安装(pycharm)和初步理解
2020/10/23 Python
如何利用python正则表达式匹配版本信息
2020/12/09 Python
深入浅析css3 中display box使用方法
2015/11/25 HTML / CSS
Europcar西班牙:全球汽车租赁领域的领导者
2018/09/17 全球购物
德国咖啡批发商:Coffeefair
2019/08/26 全球购物
新闻专业大学生找工作的自我评价
2013/10/30 职场文书
给老师的道歉信
2014/01/11 职场文书
房产委托公证书样本
2014/04/04 职场文书
教师考核评语
2014/04/28 职场文书
上课玩手机的检讨书
2014/10/01 职场文书
2014年人事工作总结范文
2014/11/19 职场文书
放假通知范文
2015/04/14 职场文书
2015年财政局工作总结
2015/05/21 职场文书
2016关于预防职务犯罪的心得体会
2016/01/21 职场文书
Python中三种花式打印的示例详解
2022/03/19 Python
Python线程池与GIL全局锁实现抽奖小案例
2022/04/13 Python