vue 父子组件之间传值
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <div id="app">
    </div>
    <script type="text/javascript" src="./vue.min.js"></script>
    <script type="text/javascript">
        // 全局组件
        // 第一个参数是组件的名字 第一个参数是options
        // 1.Parent  2.Child
        Vue.component('Child',{
            template:`
                <div>
                    <p>我是一个孩子组件</p>
                    <input type="text" v-model = 'childData' @input = 'changeValue(childData)'/>
                </div>
            `,
            props:['childData'],
            methods:{
                changeValue(val){
                    // 自定义的事件 一定通过this.$emit()去触发
                    // $emit(自定义的事件名,消息)
                    this.$emit('childHandler1',val)
                }
            }
        });
        // 父===》 子
        // 1.先给父组件中绑定自定义的属性
        // 2.在子组件中使用props接收父组件传递的数据
        // 3.可以在子组件中任意使用
        // 子 ===》 父
        // 1.在父组件绑定 自定义的事件  
        // 2.在子组件中 触发原生的事件 在函数中使用 $emit触发自定义的childHandler
        Vue.component('Parent',{
            data(){
                return {
                    msg:"我是父组件的数据"
                }
            },
            template:`
                <div>
                    <p>我是一个父组件</p>
                    <Child  :childData ='msg' @childHandler1 = 'childHandler'/>
                </div>
            `,
            methods:{
                childHandler(val){
                    console.log(val);
                }
            }
        });
        // 1.声子
        var App = {
            template:`
                <div>
                    <Parent />
                </div>
            `
        };
        new  Vue({
            el:'#app',
            data(){
                return {
                }
            },
            components:{
                // 2.挂子
                App
            },
            // 3.用子
            template:`<App />`
        });
    </script>
</body>
</html>
1 父组件向子组件属性传值:
template:` 2 <div> 3 <p>我是一个父组件</p> 4 <Child :childData ='msg' /> 5 6 </div> 7 父组件v-bind绑定,子组件正常用。
子组件向父组件事件传值:
四个事件:一个原生事件,一个子组件自定义事件,一个在子组件用this.$emit(事件,val)定义的事件,一个父组件自定义事件,原生事件触发子组件自定义事件,子组件自定义事件触发this.$emit定义的事件来触发父组件自定义事件
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号