反省文
Vueでルーターの設定をしようとしていましたが、なぜか何をやっても設定がVueに反映されません。
下のどちらかのコードには間違いがあります。
a.js
import router from "./router";
new Vue({
router,
render: h => h(App)
}).$mount("#app");
b.js
import Router from "./router";
new Vue({
Router,
render: h => h(App)
}).$mount("#app");
a.jsの方は動きますが、b.jsの方は動きません。動かそうとするとこんなエラーが出て止まります。
vue.esm.js?efeb:628 [Vue warn]: Error in render: "TypeError: Cannot read property 'meta' of undefined"
found in
---> <App> at src/App.vue
<Root>
上記の該当箇所はこんなかんじです。
export default {
computed: {
layout() {
console.log(this);
return this.$route.meta.layout || "default"; // << ココでエラー発生
}
}
};
$routeに何も代入されていません。
この様に書き直すと、今までのエラーが嘘の様に動き出しました。
b.js
import Router from "./router";
new Vue({
router: Router,
render: h => h(App)
}).$mount("#app");
router
と、オブジェクトのキーをちょいと書き加えてやるだけ。