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.tmpl JQuery模板插件
Oct 10 Javascript
Javascript 异步加载详解(浏览器在javascript的加载方式)
May 20 Javascript
开发插件的两个方法jquery.fn.extend与jquery.extend
Nov 21 Javascript
Javascript中的方法和匿名方法实例详解
Jun 13 Javascript
js实现表单Radio切换效果的方法
Aug 17 Javascript
Node.js读写文件之批量替换图片的实现方法
Sep 07 Javascript
HTML中setCapture、releaseCapture 使用方法浅析
Sep 25 Javascript
第一次接触神奇的前端框架vue.js
Dec 01 Javascript
性能优化之代码优化页面加载速度
Mar 01 Javascript
JS实现简单表格排序操作示例
Oct 07 Javascript
基于openlayers4实现点的扩散效果
Aug 17 Javascript
JS+css3实现幻灯片轮播图
Aug 14 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程序实现支持页面后退的两种方法
2008/06/30 PHP
PHP 工厂模式使用方法
2010/05/18 PHP
如何使用“PHP” 彩蛋进行敏感信息获取
2013/08/07 PHP
PHP实现会员账号单唯一登录的方法分析
2019/03/07 PHP
使用SMB共享来绕过php远程文件包含的限制执行RFI的利用
2019/05/31 PHP
php中使用array_filter()函数过滤数组实例讲解
2021/03/03 PHP
jQuery Autocomplete自动完成插件
2010/07/17 Javascript
js动态为代码着色显示行号
2013/05/29 Javascript
jQuery中val()方法用法实例
2014/12/25 Javascript
jQuery对象的selector属性用法实例
2014/12/27 Javascript
JavaScript获取浏览器信息的方法
2015/11/20 Javascript
详解ECMAScript2019/ES10新属性
2019/12/06 Javascript
node.js使用mongoose操作数据库实现购物车的增、删、改、查功能示例
2019/12/23 Javascript
JS前端模块化原理与实现方法详解
2020/03/17 Javascript
[00:16]热血竞技场
2019/03/06 DOTA
基于Python实现的百度贴吧网络爬虫实例
2015/04/17 Python
初探TensorFLow从文件读取图片的四种方式
2018/02/06 Python
python+openCV利用摄像头实现人员活动检测
2019/06/22 Python
python 整数越界问题详解
2019/06/27 Python
python字典的遍历3种方法详解
2019/08/10 Python
tensorflow使用freeze_graph.py将ckpt转为pb文件的方法
2020/04/22 Python
python中如何设置代码自动提示
2020/07/15 Python
HTML5 canvas基本绘图之绘制矩形
2016/06/27 HTML / CSS
尤妮佳moony海外旗舰店:日本殿堂级纸尿裤品牌
2018/02/23 全球购物
Ancheer官方户外和运动商店:销售电动自行车
2019/08/07 全球购物
学期研究性学习个人的自我评价
2014/01/09 职场文书
模特职业生涯规划范文
2014/02/26 职场文书
互联网电子商务专业毕业生求职信
2014/03/18 职场文书
幼儿园课题实施方案
2014/05/14 职场文书
上海世博会志愿者口号
2014/06/17 职场文书
大学社团招新的通讯稿
2014/09/10 职场文书
企业年检委托书范本
2014/10/14 职场文书
先进个人材料怎么写
2014/12/30 职场文书
鲁滨孙漂流记读书笔记
2015/06/30 职场文书
基于Redis的List实现特价商品列表功能
2021/08/30 Redis
二维码条形码生成的JavaScript脚本库
2022/07/07 Javascript