21.12.03 - TIL [nuxt.js]
Nuxtの使用
プロジェクトはvueで開始するが,メタ画像とSEOを最適化するためにnuxtフレームワークを導入する必要がある.vueで完了しましたがnuxtに変換するといくつかの問題が発生しました.
VueとNuxtディレクトリ構造の違い
最大の違いは、ルータファイルを単独で使用する必要がないことです!
Vue router
vueでは、ルータに接続するには、routerフォルダにjsファイルを作成し、直接接続する必要があります.
Nuxt router
ただし、pagesフォルダにファイルを作成するとnuxtは自動的にルータ接続を提供します..nuxt
フォルダに隠されているルータ.jsで自動的に作成されます.
ページにはquestions.vue
、tutorial.vue
、index.vue
のファイルがあります.
この時点で発生する問題
vueではrouterjsファイルでprops: true
と宣言した場合、ページをめくるときにparams値を渡すことができます.this.$router.push({ name: "Loading", params: { firstTest: true } } );
// Loading.vue
props: ["firstTest"]
Loadingというページに移動することで、変数firstTestの値trueが渡され、利用可能になります.
nuxtでrouterjsは自動生成なのでvueのようにparams値を渡すことはできません.
だから見つけた方法はクエリーに任せます!this.$router.push({path: "Loading?firstTest=true"});
// Loading.vue
data() {
return {
firstTest: null,
}
},
created() {
if (this.$route.query.firstTest) {
this.firstTest = this.$route.query.firstTest;
}
}
クエリーにより、ページを個別に作成する必要がなくても、Loadingにデータを渡すことができます.考えてみると簡単ですが、2日間考えてこれを研究しました.
Reference
この問題について(21.12.03 - TIL [nuxt.js]), 我々は、より多くの情報をここで見つけました
https://velog.io/@sjkim_jinnyk/21.12.03-TIL-nuxt.js
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
this.$router.push({ name: "Loading", params: { firstTest: true } } );
// Loading.vue
props: ["firstTest"]
this.$router.push({path: "Loading?firstTest=true"});
// Loading.vue
data() {
return {
firstTest: null,
}
},
created() {
if (this.$route.query.firstTest) {
this.firstTest = this.$route.query.firstTest;
}
}
Reference
この問題について(21.12.03 - TIL [nuxt.js]), 我々は、より多くの情報をここで見つけました https://velog.io/@sjkim_jinnyk/21.12.03-TIL-nuxt.jsテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol