Oleh kerana ini adalah komunikasi antara bapa dan anak, saya mengikuti tutorial dalam talian untuk mencipta fail bus.js
import Vue daripada 'vue'
eksport lalai Vue() baharu
Log masuk.vue komponen pertama digunakan untuk $emit
this.usermsg ialah objek
bus.$emit('usermessage', this.usermsg)
this.$router.push({name: 'mine'})
Komponen pertama mine.vue digunakan untuk $emit
data() {
return {
userData: {},
}
},
created() {
bus.$on('usermessage', (usermsg) => {
console.log(this.msg)
console.log(usermsg.name)
this.userData= usermsg
console.log('mine接收到的usermsg')
console.log(this.userData)
})
mounted() {
console.log(this.userData)
}
Data userData tidak akan ditukar dan tugasan tidak akan berkuat kuasa. Adakah ini menunjuk kepada yang salah? Atau saya tidak patut menukar tugasan seperti ini?
Pertama sekali, mine.vue anda mesti dimulakan dahulu Selepas $on('usermessage'), kod yang berkaitan mencetuskan $emit('usermessage') sebelum menerima acara ini. Mengikut kod semasa anda, apabila anda memancarkan, mine.vue belum dimulakan sama sekali, jadi acara ini tidak dapat dipantau.
Kemudian, penunjuk ini betul kerana anda menggunakan fungsi anak panah untuk butiran, sila lihat isu penunjuk fungsi anak panah ini. (Walaupun saya tidak tahu apa yang anda mahu lakukan dengan ini.msg, jelas tiada mesej dalam data)
Selain itu, idea anda adalah untuk log masuk untuk mendapatkan maklumat pengguna dan memaparkannya di halaman mine.vue . Adalah disyorkan agar anda menggunakan vuex untuk menyimpan maklumat pengguna, supaya anda boleh Dapatkannya di halaman lain
Jawapan yang betul di tingkat atas;
Apabila melompat untuk log masuk, komponen lombong akan dimusnahkan Anda boleh mencetak sesuatu dalam kitaran hayat yang dimusnahkan untuk melihat sama ada ia betul. Dengan cara ini, apabila anda melompat ke lombong semula, kandungan di dalamnya akan dimulakan semula, supaya apa yang anda cetak akan sentiasa menjadi kandungan yang baru dimulakan dan belum dikendalikan.