vue1.0父子、兄弟间 通信案例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>父子组件通信</title>
    <link rel="stylesheet" href="src/dist/styles/iview.css">
    <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
    <script src="src/dist/vue.min.js"></script>
    <script src="src/dist/iview.min.js"></script>
    <style>
        *{
            box-sizing:border-box;
        }
        .header,.footer{
            width:1200px;
            height:60px;
            border:1px solid #ccc;
            text-align:center;
            line-height:60px;
            margin:0 auto;

        }
        .footer{
            position:absolute;
            left:50%;
            margin-left:-600px;
            bottom:0;
        }
        .main{
            width:1200px;
            margin:0 auto;
            min-height:400px;
            border:1px solid #ccc;
            margin-top:20px;
            padding:20px;
        }
    </style>
</head>
<body>
    <div id="page">
        <cc-header :ppt01="ppt01"></cc-header>
        <div class="main">
            <h2><i-button @click="sendHeader">父向子(header)传数据</i-button></h2>
            <ul>
                <li v-for="item in list">{{item}}</li>
                <li>{{ppt02 || ‘---‘}}</li>
            </ul>
        </div>
        <cc-footer @change02="aceptFooter"></cc-footer>
    </div>
    <script>
        var hub = new Vue();

        Vue.component(‘ccHeader‘,{
            template:‘<div class="header">                我是header---------{{ppt01 || "==="}}                <i-button @click="sendFooter">发送给footer</i-button>            </div>‘,
            data:function(){
                return {
                    hh:‘‘
                }
            },
            props:[‘ppt01‘],
            methods:{
                sendFooter:function(){
                    alert(‘ccc‘)
                    hub.$emit(‘change01‘,this.ppt01)
                }
            }
        })

        Vue.component(‘ccFooter‘,{
            template:‘<div class="footer">                我是fooer----------{{ff || "==="}}                <i-button @click="sendFather">发送给父亲</i-button>            </div>‘,
            data:function(){
                return{
                    ff:‘abcd‘
                }
            },
            methods:{
                sendFather:function(){
                    this.$emit(‘change02‘,this.ff)
                }
            },
            created:function(){
                var self = this;
                hub.$on(‘change01‘,function(val){
                    self.ff = val;
                })
            }
        })

        var vm = new Vue({
            el:‘#page‘,
            data:{
               list:[‘1‘,‘2‘,‘3‘],
               ppt01:‘‘,
               ppt02:‘‘
            },
            methods:{
                sendHeader:function(){
                    this.ppt01 = ‘呵呵‘;
                },
                aceptFooter:function(val){
                    alert(val+‘来自footer‘);
                    this.ppt02 = val;
                }
            }
        })

    </script>
</body>
</html>
时间: 2024-08-07 17:01:28

vue1.0父子、兄弟间 通信案例的相关文章

vue2.0父子组件通信的方法

vue2.0组件通信方法:props传值和emit监听.(.sync方法已经移除.详情请点击)(dispatch-和-broadcast方法也已经废弃) props方法传值:Props 现在只能单项传递.为了对父组件产生反向影响,子组件需要显式地传递一个事件而不是依赖于隐式地双向绑定.props方法传值比较简单,缺点是属性会比较多. (1)父传子 [ props传值 ] <template>  <div> <input type="text" v-mode

vue2.0 父子组件 通信

一.父组件传递数据给子组件 (  parent  ==> children  ) props 属性 >parent 组件 parent.vue <parent> <child :child-msg="msg"></child> //这里必须要用 - 代替驼峰 </parent> data(){ return { msg: [1,2,3] }; } >child 组件 child.vue 写法一 props: ['chil

vue2.0 父子组件通信 兄弟组件通信

父组件是通过props属性给子组件通信的来看下代码: 父组件: <parent> <child :child-com="content"></child> //注意这里用驼峰写法哦 </parent> data(){ return { content:'sichaoyun' }; } 子组件通过props来接受数据 第一种方法 props: ['childCom'] 第二种方法 props: { childCom: String //这里

vue2.0父子组件通信以及同级组件通信

1.父向子通信 父组件为singer.vue.子组件为list-view.vue.需要把歌手的数据传给子组件.则绑定 :data = 'singers' ,singers为父组件的值.data为子组件接收值的名称 子组件采用props的方式接收.data 里面就是父组件传过来的的值了. 值得注意的是.当定义子组件的值有参数时,props里面的default需要向data函数一样写 2 子组件向父组件派发事件 (1)子组件做了一个点击事件 selectItem(item),并传递了一个值 (2)m

vue2.0父子组件以及非父子组件如何通信

1.父组件 >>> 子组件 父组件数据如何传递给子组件呢?可以通过props属性来实现 父组件: <parent> <child :child-msg="msg"></child> //这里必须要用 - 代替驼峰 </parent> data(){ return { msg: [1,2,3] }; } 子组件通过props来接收数据: 方式1: props: ['childMsg'] 方式2 : props: { chi

Vue1.0用法详解

Vue.js 不支持 IE8 及其以下版本,因为 Vue.js 使用了 IE8 不能实现的 ECMAScript 5 特性. 开发环境部署 可参考使用 vue+webpack. 基本用法 1 2 3 4 5 6 7 8 9 10 11 <div id="app"> {{message}} <input v-model="message"> </div> new Vue({ ele: '#app', data: { message:

vue1.0学习总结

前言 使用vue已经有三.四个月了,但是只是学着使用了一些基本方法.因为现在的前端框架越来越多(Angular,React...),但是我相信万变不离其宗,很多用法框架之间还是想通的,所以借总结的vue的机会深入了解vue到每个细节,以后能更加熟练地使用vue,有机会也能在别的框架中体会相通的思想. 一.基本&&重点介绍 兼容性:vue不支持IE8及以下版本,因为IE8不支持vue所使用的ECMAScript5语法 数据驱动视图:不需要操作DOM 支持双向绑定:但是默认为数据从父组件到子组

vue1.0 -vue 2.0

vue.js 发表于 2017-01-15   | vue基础 vue1.0 vue1.0对象的属性 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 var vm = new Vue({ el:'#box', //容器 data:{ //数据 msg:"data", a:1 }, methods:{ //普通方法 }, computed:{ //计算属性(属性b随着其return

Vuejs——(10)组件——父子组件通信

版权声明:出处http://blog.csdn.net/qq20004604 目录(?)[+] 本篇资料来于官方文档: http://cn.vuejs.org/guide/components.html#u7236_u5B50_u7EC4_u4EF6_u901A_u4FE1 本文是在官方文档的基础上,更加细致的说明,代码更多更全. 简单来说,更适合新手阅读 (二十七)父子组件通信 ①访问子组件.父组件.根组件: this.$parent    访问父组件 this.$children   访问子