vue29-vue2.0组件通信_recv

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>智能社——http://www.zhinengshe.com</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <style>

    </style>
    <script src="vue1.0.js"></script>
    <script>
        window.onload=function(){
            new Vue({
                el:‘#box‘,
                data:{
                    a:‘我是父组件数据‘
                },
                components:{
                    ‘child-com‘:{//定义父组件
                        props:[‘msg‘],//父组件从父组件获取的数据
                        template:‘#child‘,//父组件页面
                        methods:{//父组件方法
                            change(){
                                this.msg=‘被更改了‘//:msg.sync="a",<strong>{{msg}}</strong> ,父级: ->{{a}} 在1.0都被更改了。
                            }
                        }
                    }
                }
            });
        };
    </script>
</head>
<body>
    <template id="child">
        <div>
            <span>我是子组件</span>
            <input type="button" value="按钮" @click="change">
            <strong>{{msg}}</strong>
        </div>
    </template>

    <div id="box">
        父级: ->{{a}}
        <br>
        <child-com :msg.sync="a"></child-com>
    </div>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>智能社——http://www.zhinengshe.com</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <style>

    </style>
    <script src="vue.js"></script>
    <script>
        window.onload=function(){
            new Vue({
                el:‘#box‘,
                data:{
                    a:‘我是父组件数据‘
                },
                components:{
                    ‘child-com‘:{
                        props:[‘msg‘],
                        template:‘#child‘,
                        methods:{
                            change(){
                                this.msg=‘被更改了‘////:msg.sync="a",<strong>{{msg}}</strong> 在2.0都被更改了。,父级: ->{{a}} 在2.0没有被更改。
                            }
                        }
                    }
                }
            });
        };
    </script>
</head>
<body>
    <template id="child">
        <div>
            <span>我是子组件</span>
            <input type="button" value="按钮" @click="change">
            <strong>{{msg}}</strong>
        </div>
    </template>

    <div id="box">
        父级: ->{{a}}
        <br>
        <child-com :msg="a"></child-com>
    </div>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>智能社——http://www.zhinengshe.com</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <style>

    </style>
    <script src="vue.js"></script>
    <script>
        window.onload=function(){
            new Vue({
                el:‘#box‘,
                data:{
                    giveData:{//父组件传对象给子组件
                        a:‘我是父组件数据‘
                    }
                },
                components:{
                    ‘child-com‘:{
                        props:[‘msg‘],
                        template:‘#child‘,
                        methods:{
                            change(){
                                //this.msg=‘被更改了‘
                                this.msg.a=‘被改了‘;// 父级: ->{{giveData.a}}, <strong>{{msg.a}}</strong>都改了。
                            }
                        }
                    }
                }
            });
        };
    </script>
</head>
<body>
    <template id="child">
        <div>
            <span>我是子组件</span>
            <input type="button" value="按钮" @click="change">
            <strong>{{msg.a}}</strong>
        </div>
    </template>

    <div id="box">
        父级: ->{{giveData.a}}
        <br>
        <child-com :msg="giveData"></child-com>
    </div>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>智能社——http://www.zhinengshe.com</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <style>

    </style>
    <script src="vue.js"></script>
    <script>
        window.onload=function(){
            new Vue({
                el:‘#box‘,
                data:{
                    a:‘我是父组件数据‘
                },
                components:{
                    ‘child-com‘:{
                        data(){
                            return {//子组件数据
                                b:‘‘
                            }
                        },
                        props:[‘msg‘],
                        template:‘#child‘,
                        mounted(){//mounted是原来的ready
                            this.b=this.msg;
                        },
                        methods:{
                            change(){
                                this.b=‘被改了‘;//<strong>{{b.a}}</strong>改了,父级: ->{{a}}没改。
                            }
                        }
                    }
                }
            });
        };
    </script>
</head>
<body>
    <template id="child">
        <div>
            <span>我是子组件</span>
            <input type="button" value="按钮" @click="change">
            <strong>{{b.a}}</strong>
        </div>
    </template>

    <div id="box">
        父级: ->{{a}}
        <br>
        <child-com :msg.sync="a"></child-com>
    </div>
</body>
</html>
组件通信:
    vm.$emit()
    vm.$on();

    父组件和子组件:

    子组件想要拿到父组件数据:
        通过  props

    之前,子组件可以更改父组件信息,可以是同步  sync
    现在,不允许直接给父级的数据,做赋值操作

    问题,就想更改:
        a). 父组件每次传一个对象给子组件, 对象之间引用    √
        b). 只是不报错, mounted中转
时间: 2024-12-17 18:37:03

vue29-vue2.0组件通信_recv的相关文章

vue2.0组件通信各种情况总结与实例分析

Props在vue组件中各种角色总结 在Vue中组件是实现模块化开发的主要内容,而组件的通信更是vue数据驱动的灵魂,现就四种主要情况总结如下: 使用props传递数据---组件内部 //html <div id="app1"> <i>注意命名规定:仅在html内使用my-message</i> <child my-message="组件内部数据传递"></child> </div> //js

vue2.0 组件通信

1.index.html  子组件直接修改父组件的数据 组件通讯: vm.$emit(); vm.$on(); 父组件和子组件: 子组件想要拿到父组件数据: 通过 props 之前,子组件可以更改父组件信息,可以是同步 sync 现在,不允许直接给父级的数据,做赋值操作 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>

通信vue2.0组件

vue2.0组件通信各种情况总结与实例分析 Props在vue组件中各种角色总结 在Vue中组件是实现模块化开发的主要内容,而组件的通信更是vue数据驱动的灵魂,现就四种主要情况总结如下: 使用props传递数据---组件内部 //html <div id="app1"> <i>注意命名规定:仅在html内使用my-message</i> <child my-message="组件内部数据传递"></child&

vue2.0组件之间的传值--新入坑,请指教

prop down   emit up 嘿嘿    如果是第一次接触vue2.0组件传值的肯定很疑惑,这是什么意思(大神总结的,我也就是拿来用用) "down"->指的是下的意思,即父组件向子组件传值,用props:"up"->指的是上的意思,即子组件想父组件传值,用emit. 1.子组件向父组件的传值: Child.vue <template> <div class="child"> <h1>子组

Vue2.0组件注册

//全局注册: Vue.component("my-component",{ template:'<div>A custom component!</div>' }); /*交换位置会报错----创建组件必须在根实例化之前*/ //创建根实例: new Vue({ el:"#app" }) --------- //局部注册: new Vue({ el: "#app1", components: { // <my-zu

Vue2.0组件之间通信

Vue中组件这个特性让不少前端er非常喜欢,我自己也是其中之一,它让前端的组件式开发更加合理和简单.笔者之前有写过一篇Vue2.0子父组件通信,这次我们就来聊一聊平级组件之间的通信. 首先我们先搭好开发环境,我们先得装好git和npm这两个工具(如果有不清楚的同学请自行百度哦) 环境搭建步骤: 打开git ,运行 npm install --global vue-cli 这是安装vue的命令行 vue init webpack vue-demo 这是vue基于webpack的模板项目 cd vu

Vue2.0组件间数据传递

Vue1.0组件间传递 使用$on()监听事件: 使用$emit()在它上面触发事件: 使用$dispatch()派发事件,事件沿着父链冒泡: 使用$broadcast()广播事件,事件向下传导给所有的后代 Vue2.0后$dispatch(),$broadcast()被弃用,见https://cn.vuejs.org/v2/guide/migration.html#dispatch-和-broadcast-替换 1,父组件向子组件传递场景:Father上一个输入框,根据输入传递到Child组件

vue2.0组件快速入门

前言 最近开始在学vue相关的内容.组件这章的内容比较多.看了http://www.cnblogs.com/keepfool/p/5625583.html这篇博客,博主总结的还比较全面也挺清晰,可是这篇博客的知识点跟实例都是基于vue 1.0版本的,所以参考这篇博客,我将vue2.0版本中的相关知识点做了一个总结.算是自己学习的一个笔记 什么是组件? 组件 (Component) 是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.我们可以将组件看成是封装好的HT

EventBus3.0 组件通信框架源码学习总结

一.初始化 EventBus的初始化虽然用了单例模式,但是构造方法居然是public修饰符,可能是应对项目中的多线操作. //单例模式,针对并发情况进行了双层判断 public static EventBus getDefault() { if (defaultInstance == null) { synchronized (EventBus.class) { if (defaultInstance == null) { defaultInstance = new EventBus(); }