1、父组件可以使用 props 把数据传给子组件。
2、子组件可以使用 $emit 触发父组件的自定义事件

实例: 父组件: layout.vue  子组件:logform.vue

子组件:

<template>
<div class="login-form">
<div class="g-form">
<div class="g-form-line">
<span class="g-form-label">用户名:</span>
<input type="text" v-model="usernameModel" placeholder="请输入用户名">
<span class="g-form-error">{{usernameError.errorText}}</span>
</div>
<div class="g-form-line">
<span class="g-form-label">密码:</span>
<input type="password" v-model="passwordModel">
<span class="g-form-error">{{passwordError.errorText}}</span> </div>
<div class="g-form-button">
<button class="button" @click="login">登陆</button>
</div>
</div>
</div>
</template>

子组件中,this.$emit向父组件传递参数res.data

methods: {
login () {
if (this.usernameError.status === false || this.passwordError.status === false) {
alert('部分选项未通过')
} else {
this.$http.get('api/login').then(
(res) => {
// 子组件只负责触发父组件的事件,而实际的处理内容在父组件中完成
// console.log(res.data)
this.$emit('has-log', res.data)
},
(error) => {
console.log(error)
}
)
}
}
}

父组件中,调用绑定的methods只写方法名,不用带参数。而该方法在父组件中定义时,带参数。

 <myDialog :isShow="isShowLoginDialog" @on-close="closeDialog('isShowLoginDialog')">
<log-form @has-log="loginSuccess" @close-form="closeDialog('isShowLoginDialog')"></log-form>
</myDialog>
methods:{
closeDialog (param) {
this[param] = false
},
loginSuccess (data) {
console.log(data)
// this.username = data.username
// this.closeDialog('isShowLoginDialog')
}
}

vue中 父子组件的通讯的更多相关文章

  1. Vue中父子组件执行的先后顺序

    Vera   Vue中父子组件执行的先后顺序探讨(转载) 前几天,朋友向我提出了一个关于Vue中父子组件执行的先后顺序问题,相信很多朋友在学习的过程中也会遇到这个问题,所以我就在此提出我自己的一些小看 ...

  2. Vue中父子组件执行的先后顺序探讨

    前几天,朋友向我提出了一个关于Vue中父子组件执行的先后顺序问题,相信很多朋友在学习的过程中也会遇到这个问题,所以我就在此提出我自己的一些小看法. 问题如下:请问下图中父子组件执行的先后顺序? 首先, ...

  3. 简述vue中父子组件是怎样相互传递值的(基础向)

    前言 首先,你需要知道vue中父组件和子组件分别指的是什么?   父组件:vue的根实例——用new Vue()构造函数创建的vue实例(实例会有一个挂载点,挂载点里的所有内容可理解为父组件的内容) ...

  4. Vue中父子组件通讯——组件todolist

    一.todolist功能开发 <div id="root"> <div> <input type="text" v-model=& ...

  5. vue中父子组件之间的传值、非父子组件之间的传值

    在Vue实例中每个组件之间都是相互独立的,都有自己的作用域,所以组件之间是不能直接获取数据.在项目开发中一个组件可能需要获取另一个组件的值,我们可以通过其他方法间接的获取.所以,获取的方法有以下几种: ...

  6. vue中兄弟组件间通讯

    vue2.0中兄弟组件间的通讯是通过eventBus(事件发布订阅)实现的. eventBus.js import Vue from 'vue' const eventBus = new Vue() ...

  7. vue 中父子组件之间的交互

    1,最直接的也是最简单的方法是利用props来数据传值. 子组件定义如下: props: { iconClass: { type: String, required: true }, classNam ...

  8. vue中父子组件传递信息实现

    为了能够在父子组件中实现双向控制,需要以下的步骤: 第一步:子组件中挖坑 (1)在需要父组件填充具体内容的地方挖坑,方式为 <slot name="message">& ...

  9. vue中父子组件钩子的执行顺序

    我们已经非常熟悉单个的vue组件的生命周期执行顺序了,但是,如果有嵌套组件,父子组件的生命周期的执行顺序是什么? 当父子组件在加载的时候,执行的先后顺序为 父beforeCreate -> 父c ...

随机推荐

  1. Docker学习笔记之Docker的数据管理和存储

    0x00 概述 数据是应用程序重要的产出,所以很好的管理和存储数据,是对应用程序劳动结果的尊重.特别是在大数据时代,所有的数据都是重要的资产,保护好数据是每个开发者必须掌握的技能.我们知道,在 Doc ...

  2. 【题解】Luogu SP8791 DYNALCA - Dynamic LCA

    原题传送门 这题用Link-Cut-Tree解决,Link-Cut-Tree详解 这道题的难点就在如何求LCA: 我们珂以先对其中一个点进行access操作,然后对另一个点进行access操作,因为L ...

  3. linux判断文件大小

    第一条code ll -s | tail -n +2 | awk '$1 >= 10 {print $1,$10 "容量大于10"} $1 <= 9 {print $1 ...

  4. Javascropt-KeyCode

    当点回车时触发搜索事件 $(document).keydown(function (e) {                if (e.keyCode == 13) {                 ...

  5. Android - Resource 之 Menu 小结

    定义一个application的菜单,由MenuInflater召唤. 位置: res/menu/filename.xml 类型:指向Menu resource 文法: <?xml versio ...

  6. mint-ui之datetime-picker使用

    一基本使用<template> <mt-datetime-picker ref="picker" type="time" v-model=&q ...

  7. 牛客网数据库SQL实战(21-25)

    21.查找所有员工自入职以来的薪水涨幅情况,给出员工编号emp_no以及其对应的薪水涨幅growth,并按照growth进行升序CREATE TABLE `employees` (`emp_no` i ...

  8. topcoder srm 540 div1

    problem1 link 设第一个数字为$x$,那么第2到第$n$个数字都可以表示成$a+bx$的形式,其中$b=1$或者$b=-1$.然后可以求出关于$x$的一些范围,求交集即可. problem ...

  9. c++ vector常见用法

    //输出尾巴的元素 cout<<vec.back(); //定义vector迭代器 vector<int>::iterator ite=vec.begin(); for(ite ...

  10. ODAC(V9.5.15) 学习笔记(六)TOraSQL、TOraTable和TOraStoredProc

    TOraSQL是一个SQL语句执行控件,包括PL/SQL块等,不返回数据集结果. 名称 类型 说明 ChangeCursor Boolean 在非阻塞模式下是否允许改变屏幕的光标 WaitExecut ...