provide是一个对象或返回一个对象的函数。该对象包含可注入其子孙的property

在最外层组件(祖先)使用provide,如下:

    data() {return {featureQuery: {layerList: [],  //图层列表数据layerType: "",  //图层类型(symbol:点,line:线)layerCode: "",  //图层code},}},provide() {return {queryData: this.featureQuery}},

当然this.featureQuery可以改为this,element的组件中也是用的this,但页面中变量及方法比较多,担心会有性能方面影响,故而只注入部分使用到的变量。

在需要用到这些变量的页面中使用inject,如下:

    inject: ['queryData'],watch: {"queryData.layerCode": {handler(obj) {},deep: true,},},

然后即可在该页面直接this.queryData.layerCode使用,也可以进行监听。这样即完成了祖先向子孙传值

如果子组件需要调用父/祖先的方法,第一种可以将上面的this.featureQuery改为this,然后直接在子孙组件通过this.queryData[方法名]即可,另一种就是通过emit传回去,可以使用$listeners,使用方法如下

有A、B、C三个页面,B是A的子组件,C是B的子组件
C组件

//页面点击事件
handleClick(data) {this.$emit("current-layer", data);
}

B组件(页面引入C组件的地方添加v-on=“$listeners”)

<C v-on="$listeners"></C>

A组件

<B @current-layer="handleChangeLayer"></B>handleChangeLayer(data){//这里调用A组件的方法即可
}

vue祖孙组件间传值相关推荐

  1. 【Vue】组件间传值的三种方式:父传子,子传父,非父子传值

    引用官网的一句话:父子组件的关系可以总结为 prop 向下传递,事件向上传递.父组件通过 prop 给子组件下发数据,子组件通过事件给父组件发送消息,如下图所示: 1,父组件传值给子组件 代码: &l ...

  2. [vue] 父子组件间传值

    环境说明: vue 3.x + ant-vue 父组件(Album.vue)使用: <template><div><a-button type="primary ...

  3. vue父子组件间传值(props)

    先定义一个子组件,在组件中注册props <template><div><div>{{message}}(子组件)</div></div> ...

  4. vue项目原理分析-1:组件间传值

    整个项目目录(create project后) vue.config.js的配置 // vue.config.js 常⽤配置 module.exports = {devServer:{port:333 ...

  5. 六十三、Vue中非父子(兄弟)组件间传值,插槽的使用和作用域插槽(非常重要)

    2020/10/18 . 周日.今天又是奋斗的一天. @Author:Runsen @Date:2020/10/18 写在前面:我是「Runsen」,热爱技术.热爱开源.热爱编程.技术是开源的.知识是 ...

  6. vue 组件间传值、兄弟组件 、bus方式 ( 1 分钟看懂 )

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. bus方式的组件间传值其实就是建立一个公共的js文件,专门用来传递消息 1.建立公共文件,并引入 新 ...

  7. vue向ifarm传值_vue组件间传值

    目前流行组件化开发,vue组件间传值是一个非常常用的功能,有时候仅仅是父子和兄弟之间简单的传值,我们就没有必要直接引入vuex来进行管理. # 1.父子间传值 ## 1.1 子组件向父组件传值 子组件 ...

  8. Vue组件间传值详解

    文章目录 1. 父组件向子组件传值 1.1 描述 1.2 props接收数据: 2. 子组件向父组件传值 3. 兄弟组件间传值 4. 事件总线 5. Ref 6. root/parent/childr ...

  9. vue组件间传值的六种方法

    一. vue组件间传值 1. 父组件向子组件进行传值props 父组件代码: <template><div>父组件:<input type="text" ...

最新文章

  1. Docker 容器技术 — Image
  2. sql server Json表达式解析函数
  3. 【Android 热修复】热修复原理 ( 合并两个 Element[] dexElements | 自定义 Application 加载 Dex 设置 | 源码资源 )
  4. mainwindow.obj:-1: error: LNK2019: 无法解析的外部符号 public: __cdecl about::about(class QWidget *) (??0abo
  5. 论文浅尝 | 用异源监督进行关系抽取:一种表示学习方法
  6. spring事务的传播属性
  7. 怎么样成为一个高手--有悟
  8. 功能和界面哪个更重要
  9. Atitit 软件开发中的艾提拉思想与理念总结 后端优先 手机优先 做好政治动员 高层抽象 一定要出理论结果书籍总结 技术就是艺术 三个软件层次的划分 实现层 规划层 艺术层 无限生
  10. java 坦克大战 素材_经典90坦克大战素材
  11. 自学c语言难,c语言难学吗?
  12. 用Python算出你的名字,比老僧算的更快!
  13. EIQ分析法_配送中心
  14. python 百度ai json解析_百度AI接口调用
  15. linux 服务器搭建opvn
  16. ps可以去视频水印h吗
  17. 制作EDM 邮件规范
  18. 【笔记】斜线(slash)和反斜线“\”(backslash)的区别总结
  19. 解码百度大脑“一叶红船见百年”AR互动:见证勇立潮头的“中国AI”
  20. Linux:TTY串口接收中断

热门文章

  1. 低眉信手续续弹,说尽心中无限事——python分支结构
  2. 易语言远程x64位汇编call技术
  3. LeakCanary 一只优雅的金丝雀
  4. [转]腾讯QQ前总经理创业,踩中直播答题、线上娃娃机风口获IDG投资
  5. 从小米想到的商业模式创新
  6. python爬虫-抓取acg12动漫壁纸排行设置为桌面壁纸
  7. 如何搭建自己的SVN服务器
  8. [案例5-1]模拟订单号生成
  9. 显示屏在线测试软件,Monitor Test Screens显示器测试
  10. 基于MATLAB的水果分级设计