一  父组件主动调用子组件:

注意:在父组件使用子组件的标签上注入ref属性,例如:

<div id="home">
<v-header ref="header"></v-header>
<hr>
首页组件
<button @click="getChildData()">获取子组件的数据和方法</button>
</div>
父组件主动获取子组件的数据和方法:

    .调用子组件的时候定义一个ref

        <v-header ref="header"></v-header>

    .在父组件里面通过

        this.$refs.header.属性

        this.$refs.header.方法

二 非父子组件传值

注意:非父子组件传值,但两个组件必须被在一个页面中使用了。例如 home组件和news组件互相传值:

<template>

  <div id="app"> 

     <v-home></v-home>

    <br>

    <v-news></v-news>
</div>
</template>

(1)创建vue实例

import Vue from 'vue';

var VueEvent = new Vue()

export default VueEvent;

(2)$emit $on

<template>
<div id="news">
我是新闻组件
<br>
<button @click="emitHome()">给Home组件广播数据</button>
<br>
</div> </template> <script>
//引入 vue实例
import VueEvent from '../model/VueEvent.js';
export default{
data(){
return {
msg:'我是一个新闻组件'
}
},
methods:{
emitHome(){
//广播
VueEvent.$emit('to-home',this.msg)
}
},
mounted(){
VueEvent.$on('to-news',function(data){
console.log(data);
})
}
}
</script>
<template>
<!-- 所有的内容要被根节点包含起来 -->
<div id="home">
我是首页组件
<br>
<button @click="emitNews()">给News组件广播数据</button>
<br>
</div>
</template> <script> //引入 vue实例
import VueEvent from '../model/VueEvent.js'; export default{
data(){
return {
msg:'我是一个home组件',
title:'首页111'
}
},methods:{
emitNews(){
//广播数据
VueEvent.$emit('to-news',this.msg)
}
},
mounted(){
//监听news 广播的数据
VueEvent.$on('to-home',function(data){
console.log(data);
})
}
} </script> <style lang="scss" scoped> </style>

【vue】父组件主动调用子组件 /// 非父子组件传值的更多相关文章

  1. vue 2 使用Bus.js进行兄弟(非父子)组件通信 简单案例

    vue2中废弃了$dispatch和$broadcast广播和分发事件的方法.父子组件中可以用props和$emit().如何实现非父子组件间的通信,可以通过实例一个vue实例Bus作为媒介,要相互通 ...

  2. Vue bus的使用(兄弟|非父子组件传值)-->可以使用一个空的Vue实例作为中央事件总线new Vue()

    1.在main.js中注册全局的bus  Vue.prototype.bus=new Vue(); 2.在组建中使用 子组建使用:this.bus.$emit('自定义事件名',data) metho ...

  3. Vue父子,子父,非父子组件之间传值

    Vue组件基础 纯属随笔记录,具体详细教程,请查阅vue.js网站 子组件给父组件传值: <body> <div id="app"> <my-app& ...

  4. vue--父组件主动获取子组件的方法

    父组件主动获取子组件的方法和属性 第一步:调用自组件的时候,给自组建定义一个Header <v-header ref='headerInfo'></v-header> 第二步: ...

  5. 组件基础(非父子组件传值)—Vue学习笔记

    最近几天忙着写Api去了,抽空把后面的内容下出来,然后再分享给大家web可以使用的api. 上次说了父子组件直接的传值,这次看一下非父子组件之间的传值(总线机制) 要实现非父子组件之间的传值非常重要的 ...

  6. vue 父组件主动获取子组件的数据和方法 子组件主动获取父组件的数据和方法

    Header.vue <template> <div> <h2>我是头部组件</h2> <button @click="getParen ...

  7. Vue 父组件主动获取子组件的值,子组件主动获取父组件的值

    父组件主动获取子组件的值 1. 在调用子组件的时候定义一个ref-> ref="header"2. 在父组件中通过this.$refs.header.属性,调用子组件的属性, ...

  8. vue.js 父组件主动获取子组件的数据和方法、子组件主动获取父组件的数据和方法

    父组件主动获取子组件的数据和方法 1.调用子组件的时候 定义一个ref <headerchild ref="headerChild"></headerchild& ...

  9. Vue组件传值,父传子,子传父,非父子组件

    vue3中传值方式: 1.父组件向子组件传值 父组件Blog.vue <template> <div id="blog"> <Alert v-if=& ...

随机推荐

  1. LFS搭建第一天补充

    1.选择lfs的iso 2.启动虚拟机,进入以下界面直接按回车键 3. 选择下面的时间 4.直接默认本地时间 5.语言格式选择UTF-8 6.默认 7.直接回车,进入系统 8.对hda盘进行分区,我分 ...

  2. python+MongoDB使用示例

    本博客起源于博主的大三NoSQL课程设计,采用python+MongoDB结合方式,将数据从txt文件导入MongoDB之中,再将其取出以作图.主要技术是采用python与MongoDB结合存储读取方 ...

  3. 关于 idea 快捷键 alt + f7 无法使用的一些尝试

    1. 概述 问题 使用 idea 时, 快捷键 alt + f7 无法生效 环境 OS: win10 idea: idea 2018.1.5 GeForce Experience: 3.17.0.12 ...

  4. Winform程序拖拽文件到窗体

    1:首先需要将接收拖拽的窗体属性AllowDrop设置为True. 2:编写窗体拖拽进入(DragEnter)和拖拽完成(DragDrop)事件. private void FrmCode_DragE ...

  5. windows phone 手机解锁失败问题

    1.使用 VS 2015  自带的  Windows Phone Developer Registration (8.1) 工具, 解锁手机. 总是提示 日期和时间错误. 解决办法,  有2个 1.打 ...

  6. 搜索引擎ElasticSearch系列(四): ElasticSearch2.4.4 sql插件安装

    一:ElasticSearch sql插件简介 With this plugin you can query elasticsearch using familiar SQL syntax. You ...

  7. JavaWeb(十三)——使用Session防止表单重复提交

    在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应,那么用户可能会以为是自己没有提交表单,就会再点击提交按钮重复提交表单,我们在开发中必须防止表单重复提交. 一.表单重复提 ...

  8. 机器学习与R语言——基本语法

    一.注释 1.选中要注释的内容,快捷键Ctrl+Shift+C(取消注释方法相同) 2.在需注释内容前输入# #需注释的内容 3.利用if语句,将判断条件设置为false则可跳过if语句中的内容,相当 ...

  9. hbase和ZooKeeper集群安装配置

    一:ZooKeeper集群安装配置 1:解压zookeeper-3.3.2.tar.gz并重命名为zookeeper. 2:进入~/zookeeper/conf目录: 拷贝zoo_sample.cfg ...

  10. redis主从配置+sentinel哨兵

    redis主从配置+sentinel哨兵 1:编译环境准备 1.1环境确认 Redis是一个开源.支持网络.基于内存.键值对存储数据库,使用ANSI C编写.所以在搭建Redis服务器时需要C语言的编 ...