A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 上海分校-小影 于 2018-5-18 10:15 编辑

父组件是通过props属性给子组件通信的来看下代码:
父组件:

<parent>    <child :child-com="content"></child> //注意这里用驼峰写法哦</parent>data(){    return {        content:'sichaoyun'    };}
子组件通过props来接受数据
第一种方法
props: [
第二种方法
props: {    childCom: String //这里指定了字符串类型,如果类型不一致会警告的哦}
第三种方法
props: {    childCom: {        type: String,        default: 'sichaoyun'     }}

子组件与父组件通信
vue2.0只允许单向数据传递,我们通过出发事件来改变组件的数据,废话少说,上干货
子组件代码
[url=][/url]
<template>    <div @click="open"></div></template>methods: {   open() {        this.$emit('showbox','the msg'); //触发showbox方法,'the msg'为向父组件传递的数据    }}[url=][/url]

父组件
[url=][/url]
<child @showbox="toshow" :msg="msg"></child> //监听子组件触发的showbox事件,然后调用toshow方法methods: {    toshow(msg) {        this.msg = msg;    }}[url=][/url]


兄弟组件之间的通信
我们可以实例化一个vue实例,相当于一个第三方
let vm = new Vue(); //创建一个新实例
组件他哥
<div @click="ge"></div>methods: {    ge() {        vm.$emit('blur','sichaoyun'); //触发事件    }}
组件小弟接受大哥命令
<div></div>created() {  vm.$on('blur', (arg) => {         this.test= arg; // 接收    });}
搞定!




3 个回复

正序浏览
回复 使用道具 举报
回复 使用道具 举报
奈斯
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马