子組件:vuecomponents.vuevue
<template> <div> <div> <button @click="butClick">密密麻麻</button> </div> </div> </template> <script> export default { data(){ return { num: { a: 'oo', b: 'pp', c: 'vv' } } }, methods: { butClick(){ this.$emit('handleClickData',this.num); } } } </script> <style> </style>
父組件:prents.vuethis
<template> <div> <vue-components @handleClickData="handleClick"></vue-components> </div> </template> <script> export default { data() { return { } }, methods: { handleClick(num){ console.log('xxxx:',num); console.log('xxxx:',num.a); console.log('xxxx:',num.b); console.log('xxxx:',num.c); } }, created(){ } } </script> <style> </style>
全局註冊:code
components.jscomponent
import Vue from 'vue'; import vueComponents from './components/vuecomponents.vue'; export default (Vue) => { Vue.component('vue-components',vueComponents); }
main.js事件
import Components from '@/public-components/components.js'; Vue.use(Components);
總結:想要把子組件中的值傳遞給父組件,ip
(1)首先,咱們要作的就是先肯定子組件和父組件,好比:it
咱們能夠給子組件一個點擊事件,即:console
<Button type="primary" size="large" @click="butClick">點擊</Button>
(2)而後,咱們能夠經過‘butClick’這個點擊事件,來去調用this.$emit()方法,這個方法能夠傳遞兩個參數。import
第一個參數就是綁定在這個子組件上的一個自定義屬性,第二個參數就是子組件傳遞過來的值。cli
butClick(){ this.$emit('popupClickData',this.numData); },
(3)這最後一步呢,就是給子組件上那個自定義的屬性綁定一個方法,把子組件傳遞過來的值看成這個方法的參數接受過來,這樣經過調用這個方法就能夠獲取子組件中的值了。
<popup-window @popupClickData="popupClick"></popup-window> popupClick(numData){ console.log('vvvv',numData); },