クエリパラメータによって使用するlayoutファイルを切り替えなければならない場面に遭遇したので備忘録。
公式ドキュメントにある通りです。
layoutの使い方
ページコンポーネントでlayoutプロパティを指定することでカスタムレイアウトが使用できます。
指定がない場合はdefault
のlayoutファイルが使われます。
// 公式より
export default {
layout: 'blog',
// または
layout (context) {
return 'blog'
}
}
クエリパラメータでlayoutファイルを切り替える
layoutメソッドの引数にコンテキストを渡すことができます。
localhost:3000/hoge?type=special
にリクエストがきた時にspecial
レイアウトを使用する場合
hoge/index.vue
export default {
layout({ query }) {
if (query.type === 'special') {
return 'special'
}
return 'default'
}
}