Javascript Vue与所有(或大多数)组件共享外部库
嗨,我正在和Firebase一起使用Vue 在我的App.vue我的主要入口点中,我正在初始化Firebase库,如下所示Javascript Vue与所有(或大多数)组件共享外部库,javascript,vue.js,vuejs2,Javascript,Vue.js,Vuejs2,嗨,我正在和Firebase一起使用Vue 在我的App.vue我的主要入口点中,我正在初始化Firebase库,如下所示 import Firebase from 'firebase'; export default { data() { return { firebase: null } }, created() { this.firebase = Firebase.initializeApp(
import Firebase from 'firebase';
export default {
data() {
return {
firebase: null
}
},
created() {
this.firebase = Firebase.initializeApp({
apiKey: "123456789",
projectId: "projectid-1234",
});
}
}
然后我将它作为道具传递给其他需要它的组件
<template>
<div id="app" class="container">
<create-user-form :firebase="firebase"></create-user-form>
<users :firebase="firebase"></users>
</div>
</template>
问题是我的组件必须依赖Firebase插件,其深度为2或3级。我需要继续开着这个Firebase道具吗?我想知道是否有更有效的方法?您可以使用实例属性:
您可以使用实例属性:
import Firebase from 'firebase';
export default {
props: ['firebase'],
methods: {
createUser() {
this.firebase.database().ref('users')....
}
}
},
mounted() {
this.firebase.database().ref('users')....
}
}
// In your main js file
Vue.prototype.$firebase = Firebase.initializeApp({
apiKey: "123456789",
projectId: "projectid-1234",
})
new Vue({
//...
})
// In your child component
//...
this.$firebase.database().ref('users')
//...