vue.js父组件怎么传值给子组件

JavaScript012

vue.js父组件怎么传值给子组件,第1张

子组件通过$emit方法向父组件发送数据,子组件在父组件的模板中,通过自定义事件接收到数据,并通过自定义函数操作数据

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>Document</title>

<script type="text/javascript" src="vue.js"></script>

</head>

<body>

<!-- 子组件向父组件传递数据 -->

<div id="box">

<v-parent></v-parent>

</div>

<body>

<script src="../libs/vue.js"></script>

<div id="app">

    <com1></com1>

    <!--com2给com1发消息-->

    <com2></com2>

</div>

<template id="temp1">

    <div>

        <h2>com1子组件的数据</h2>

    </div>

</template>

<template id="temp2">

    <div>

        <h2>com2子组件的数据</h2>

        <button @click="sendMessage">发送消息</button>

    </div>

</template>

<script>

    /*创建一个全局的bus属性*/

    /*bus是自定义的全局属性,可更改*/

    Vue.prototype.bus = new Vue()

    Vue.component('com1', {

        template: '#temp1',

        mounted(){

            //接收消息

            this.bus .$on ('click',(msg)=>{

                console.log(msg)

            })

        }

    })

    Vue.component('com2', {

        template: '#temp2',

        data(){

            return{

                message:'com2的私有数据'

            }

        },

        methods: {

            /*发送消息*/

            sendMessage() {

                this.bus .$emit ("click", this.message)

            }

        }

    })

    var app = new Vue({

        el: '#app',

        data: {

            message: '',

        },

    })

</script>

</body>