Как получить доступ к экземпляру импортированного компонента vue вне основного компонента vue? - PullRequest
0 голосов
/ 11 января 2019

Я импортирую этот простой компонент Vue в мой файл main.js (приложение NativeScript-Vue)

App.vue

<template>
  <Page>
    <ActionBar title="Welcome to NativeScript-Vue!"/>
    <StackLayout>
      <Label class="message" :text="msg" col="0" row="0" @tap="log"/>
    </StackLayout>
  </Page>
</template>


<script>

export default {
  data() {
    return {
      msg: "Hello World!"
    }
  },
  methods: {
    log() {
      console.log("clicked")
    }
  }
}
</script>

main.js

Как получить доступ к экземпляру App.vue, который используется в main.js вне основного компонента Vue. Как и ниже, я инициализирую firebase перед вызовом метода start() в основном компоненте Vue

import Vue from 'nativescript-vue'
import App from './components/App'
import * as firebase from 'nativescript-plugin-firebase'

/* how to access App component's instance here */
firebase.init().then(() => { 
    console.log('firebase initialized') 
    /* how to call log() or change msg's value here */
})

new Vue({
   render: h => h('frame', [h(App)])
}).$start()

Можно ли как-нибудь получить доступ к данным импортированных компонентов и изменить значение msg при инициализации firebase?

1 Ответ

0 голосов
/ 11 января 2019

Попробуй так:

import Vue from 'nativescript-vue'
import App from './components/App'
import * as firebase from 'nativescript-plugin-firebase'

/* how to access App component's instance here */
firebase.init().then(() => { 
    console.log('firebase initialized') 
    /* how to call log() or change msg's value here */
    myApp.log()
})

const myApp = new Vue({
   render: h => h('frame', [h(App)])
}).$start()

Но это не проверено.

...