2017-09-08 33 views
0

如何在腳本的導出部分和非導出部分之間傳遞值?在腳本的導出部分和非導出部分之間傳遞值

建設看起來是這樣的:

<script> 
// PART 1: 
import { EventBus } from './event-bus.js'; 

EventBus.$on('value-received', value => { 
    this.receivedValue = value; 
}); 

// PART 2: 
export default { 
    data() { 
     return { 
      receivedValue: '' 
     } 
    }, 
    watch: {...}, 
    methods: {...} 
} 
</script> 

我怎樣才能獲得value分配給receivedValue變量和Vue的方法制成的使用嗎?

回答

1

因爲你EventBus.$on呼叫使用箭頭功能,它引用了this是在EventBus通話的時間範圍this。接收對象

如果你是好與具有相同receivedValue您的活動任何情況下,你可以重定向值在文件的範圍:

var shared = { receivedValue: '' }; 
EventBus.$on('value-received', value => { 
    shared.receivedValue = value; 
}); 

export default { 
    data() { return shared; } 
    watch: ..., 
    methods: .... 
} 

Vue.js會註冊一個處理程序對所返回對象的變化作出反應,即。 shared

如果由於某種原因,您希望爲組件的每個實例分配一個事件流,則需要在data()函數內創建一個新對象,並讓您的事件總線直接更新新對象。