![](/img/trans.png)
[英]Vue 1.x/2.x: Get vue-router path url from a $route object
[英]Vue2: How to specify the vue-router root component?
我剛升級到Vue2.0,對它不是很熟悉。
一項更改給我帶來了麻煩,即 vue-router 初始化[docs]已更改:
就我而言,初始化代碼更改如下:
import RootApp from './components/RootApp.vue';
router.start(RootApp, '#app')
import RootApp from './components/RootApp.vue';
new Vue({
el: '#app',
router: router,
render: h => h(RootApp)
})
很快我發現以這種新案例的方式指定RootApp
會使根應用程序代碼對我來說模棱兩可。
在舊情況下,每個子路由元素的$root
元素產生RootApp
實例,而在新情況下,它產生另一個包含RootApp
實例作為其唯一子項的組件。
那么,就麻煩了,有沒有什么辦法可以創建RootApp
只是在 Vue2 中充當根節點?
或者我猜,有什么方法可以創建如下所示的 Vue 實例(但嘗試失敗):
# Failed code to tell what I want
import RootApp from './component/RootApp.vue';
new RootApp({
el: '#app',
router: router,
});
測試了半天,發現最后一次嘗試也差不多了,看另外一個問題:
Vue.js 2:如何從 .vue 文件初始化(構造)一個 Vue 組件?
以下代碼完美運行!
import RootApp from './component/RootApp.vue';
const RootAppConstructor = Vue.extend(RootApp);
new RootAppConstructor({
el: '#app',
router: router,
});
您可以重構您的RootApp
,以便它的方法/數據等......都駐留在這個新的根 Vue 實例中。
這也意味着將RootApp
的模板復制到您的主index.html
(或您使用的任何文件)文件中。 完成后,盡管一切都應該像以前一樣運行,盡管不是來自單個.vue
文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.