#3 Vue.js基礎(v-on)
kurumin
プログラミングのーと
1単語でも動作するが、2単語以上にすることが推奨されている。
これは将来、新しいHTMLタグが増えてもタグ名の衝突が起きないようにするため。
import GlobalHeader from '@/components/GlobalHeader.vue';scriptブロックでimportし、templateブロックで呼び出す。
<GlobalHeader />エイリアスの書き方の@は何を意味しているのかは、tsconfig.app.jsを見るとわかる。
"paths": {
"@/*": ["./src/*"]
}“paths”で@はsrc配下として設定されている。
下記の書き方だとassetsフォルダに「index.78y6r349.js」のようなjsファイルが生成される。
import { createRouter, createWebHistory } from 'vue-router';
import Top from '@/views/Top.vue';
import About from '@/views/About.vue';
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
routes: [
{
path: '/',
name: 'top',
component: () => import('@/views/Top.vue')
},
{
path: '/about',
name: 'about',
component: () => import('@/views/About.vue')
}
]
});
export default router;
上記のように記述することも可能だが、jsファイルが肥大化し最初の読み込みに時間が掛かるので、それを防ぐためにページごとにjsファイルを分割し、そのページを訪れたタイミングで読み込むようにする。
このことを遅延ローディングルートと言う。
import { createRouter, createWebHistory } from 'vue-router';
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
routes: [
{
path: '/',
name: 'top',
component: () => import('@/views/Top.vue')
},
{
path: '/about',
name: 'about',
component: () => import('@/views/About.vue')
}
]
});
export default router;
今度はassetsフォルダに「about.vfd6av8.js」のようなファイルが作られている。
これによりSPAで問題になりがちだった初回ロードの重さが緩和される。