コミートム合同会社

コミートム合同会社

Nuxt3 useStateの使い方

Nuxt3 useState useFetch useState Nuxt3's useState is a very convenient tool that allows you to store and retrieve data. It can be used in conjunction with useFetch to do a lot of things. In this article, we will show you how to use useState to enter data, retrieve data, and add data.
by JanitorSep 19, 2023
Nuxt3のuseStateの使い方に関する記事です。非常に便利で、useFetchと併用することで色々と出来そうです。
Nuxt3のuseStateの使い方に関する記事です。非常に便利で、useFetchと併用することで色々と出来そうです。

Jump Links

1. useStateを使ってデータを入れる
1. useStateを使ってデータを取り出す
3. 動作確認
4. おわりに
1. useStateを使ってデータを入れる
1. useStateを使ってデータを入れる
今回の記事では下記のようなフォルダ構成になっています。layoutsフォルダのdefault.vueでcomponent0.vueとindex.vueを呼び出します。component0.vueとindex.vueで表示させるデータを、default.vueでuseStateを使って用意します。component0.vueとindex.vueではuseStateを使ってデータを取り出して使用します。
今回の記事では下記のようなフォルダ構成になっています。layoutsフォルダのdefault.vueでcomponent0.vueとindex.vueを呼び出します。component0.vueとindex.vueで表示させるデータを、default.vueでuseStateを使って用意します。component0.vueとindex.vueではuseStateを使ってデータを取り出して使用します。
default.vueでは下記のようにしてuseStateを使ってデータを入れました。
default.vueでは下記のようにしてuseStateを使ってデータを入れました。
default.vue <script setup> import component0 from '@/components/component0.vue'; var useStateKey = "initial"; var data = { pageDatas: [ { data: "012" }, { data: "345" }, ], compoDatas: [ { data: "678" }, { data: "9AB" }, ] }; useState( useStateKey, () => data ); </script> <template> <div style="margin-top: 10px; margin-left: 10px;"> <component0></component0> <NuxtPage/> </div> </template>
default.vue <script setup> import component0 from '@/components/component0.vue'; var useStateKey = "initial"; var data = { pageDatas: [ { data: "012" }, { data: "345" }, ], compoDatas: [ { data: "678" }, { data: "9AB" }, ] }; useState( useStateKey, () => data ); </script> <template> <div style="margin-top: 10px; margin-left: 10px;"> <component0></component0> <NuxtPage/> </div> </template>
script内では、キーとデータを用意して、useStateにキーとそれに対応するデータを入れています。template内では、component0とindex.vueを呼び出しています。
script内では、キーとデータを用意して、useStateにキーとそれに対応するデータを入れています。template内では、component0とindex.vueを呼び出しています。
1. useStateを使ってデータを取り出す
1. useStateを使ってデータを取り出す
component0.vueでは下記のようにしてデータを取り出しています。
component0.vueでは下記のようにしてデータを取り出しています。
components/component0.vue <script setup> var useStateKey = "initial"; var compoDatas = useState( useStateKey ).value.compoDatas; </script> <template> <div class="bgYellow pa-3"> <h3>This area is component0.vue. </h3> <div>compoDatas is the following.</div> <span class="mr-3" v-for="( compoData, index ) in compoDatas" :key="index"> {{ compoData.data }} </span> </div> </template> <style> .bgYellow{ background-color: #EDE169; } </style>
components/component0.vue <script setup> var useStateKey = "initial"; var compoDatas = useState( useStateKey ).value.compoDatas; </script> <template> <div class="bgYellow pa-3"> <h3>This area is component0.vue. </h3> <div>compoDatas is the following.</div> <span class="mr-3" v-for="( compoData, index ) in compoDatas" :key="index"> {{ compoData.data }} </span> </div> </template> <style> .bgYellow{ background-color: #EDE169; } </style>
script内では、キーを用意して、そのキーに対応するデータをuseStateを使って取り出しています。template内では、取り出したデータをv-forを使って取り出しています。一部Vuetifyの記述がありますので、Vuetifyを入れていない方は、pa-3とmr-3を削除してください。 index.vueでも同様に下記のようにしてデータを取り出しています。
script内では、キーを用意して、そのキーに対応するデータをuseStateを使って取り出しています。template内では、取り出したデータをv-forを使って取り出しています。一部Vuetifyの記述がありますので、Vuetifyを入れていない方は、pa-3とmr-3を削除してください。 index.vueでも同様に下記のようにしてデータを取り出しています。
index.vue <script setup> var useStateKey = "initial"; var pageDatas = useState( useStateKey ).value.pageDatas; var add = () => { pageDatas.push( { data: "CDE" } ); } </script> <template> <div class="bgBlue pa-3"> <h3>This area is index.vue. </h3> <div>pageDatas is the following.</div> <div> <span class="mr-3" v-for="( pageData, index ) in pageDatas" :key="index"> {{ pageData.data }} </span> </div> <VBtn @click="add" class=" bgGreen mt-3">add</VBtn> </div> </template> <style> .bgBlue{ background-color: #9BF4FF; } .bgGreen{ background-color: #D1D32A; } </style>
index.vue <script setup> var useStateKey = "initial"; var pageDatas = useState( useStateKey ).value.pageDatas; var add = () => { pageDatas.push( { data: "CDE" } ); } </script> <template> <div class="bgBlue pa-3"> <h3>This area is index.vue. </h3> <div>pageDatas is the following.</div> <div> <span class="mr-3" v-for="( pageData, index ) in pageDatas" :key="index"> {{ pageData.data }} </span> </div> <VBtn @click="add" class=" bgGreen mt-3">add</VBtn> </div> </template> <style> .bgBlue{ background-color: #9BF4FF; } .bgGreen{ background-color: #D1D32A; } </style>
やっていることは、component0.vueとほぼ同じです。ボタンとボタンを押したときの関数を用意しています。
やっていることは、component0.vueとほぼ同じです。ボタンとボタンを押したときの関数を用意しています。
3. 動作確認
3. 動作確認
yarn devをしてアクセスすると下の画像のように表示されます。
yarn devをしてアクセスすると下の画像のように表示されます。
ボタンを押すと、「012 345 CDE」という表示になります。面白いことに、開発者ツールでボタンを押したときに入る関数で、ブレークポイントを貼ってpush前後で確認すると、グローバル変数の、window -> __NUXT__ -> state(useNuxtApp().payload.stateに相当)を確認すると、下の画像のようにpageDatasに追加してくれています。
ボタンを押すと、「012 345 CDE」という表示になります。面白いことに、開発者ツールでボタンを押したときに入る関数で、ブレークポイントを貼ってpush前後で確認すると、グローバル変数の、window -> __NUXT__ -> state(useNuxtApp().payload.stateに相当)を確認すると、下の画像のようにpageDatasに追加してくれています。
4. おわりに
4. おわりに
とても便利ですね。キーを設定するとC言語で言うところのポインタを返してくれているようなイメージでしょうか。
とても便利ですね。キーを設定するとC言語で言うところのポインタを返してくれているようなイメージでしょうか。

Nuxt3 useStateの使い方

Nuxt3 useState useFetch useState Nuxt3's useState is a very convenient tool that allows you to store and retrieve data. It can be used in conjunction with useFetch to do a lot of things. In this article, we will show you how to use useState to enter data, retrieve data, and add data.
by JanitorSep 19, 2023
Nuxt3のuseStateの使い方に関する記事です。非常に便利で、useFetchと併用することで色々と出来そうです。
Nuxt3のuseStateの使い方に関する記事です。非常に便利で、useFetchと併用することで色々と出来そうです。

Jump Links

1. useStateを使ってデータを入れる
1. useStateを使ってデータを取り出す
3. 動作確認
4. おわりに
1. useStateを使ってデータを入れる
1. useStateを使ってデータを入れる
今回の記事では下記のようなフォルダ構成になっています。layoutsフォルダのdefault.vueでcomponent0.vueとindex.vueを呼び出します。component0.vueとindex.vueで表示させるデータを、default.vueでuseStateを使って用意します。component0.vueとindex.vueではuseStateを使ってデータを取り出して使用します。
今回の記事では下記のようなフォルダ構成になっています。layoutsフォルダのdefault.vueでcomponent0.vueとindex.vueを呼び出します。component0.vueとindex.vueで表示させるデータを、default.vueでuseStateを使って用意します。component0.vueとindex.vueではuseStateを使ってデータを取り出して使用します。
default.vueでは下記のようにしてuseStateを使ってデータを入れました。
default.vueでは下記のようにしてuseStateを使ってデータを入れました。
default.vue <script setup> import component0 from '@/components/component0.vue'; var useStateKey = "initial"; var data = { pageDatas: [ { data: "012" }, { data: "345" }, ], compoDatas: [ { data: "678" }, { data: "9AB" }, ] }; useState( useStateKey, () => data ); </script> <template> <div style="margin-top: 10px; margin-left: 10px;"> <component0></component0> <NuxtPage/> </div> </template>
default.vue <script setup> import component0 from '@/components/component0.vue'; var useStateKey = "initial"; var data = { pageDatas: [ { data: "012" }, { data: "345" }, ], compoDatas: [ { data: "678" }, { data: "9AB" }, ] }; useState( useStateKey, () => data ); </script> <template> <div style="margin-top: 10px; margin-left: 10px;"> <component0></component0> <NuxtPage/> </div> </template>
script内では、キーとデータを用意して、useStateにキーとそれに対応するデータを入れています。template内では、component0とindex.vueを呼び出しています。
script内では、キーとデータを用意して、useStateにキーとそれに対応するデータを入れています。template内では、component0とindex.vueを呼び出しています。
1. useStateを使ってデータを取り出す
1. useStateを使ってデータを取り出す
component0.vueでは下記のようにしてデータを取り出しています。
component0.vueでは下記のようにしてデータを取り出しています。
components/component0.vue <script setup> var useStateKey = "initial"; var compoDatas = useState( useStateKey ).value.compoDatas; </script> <template> <div class="bgYellow pa-3"> <h3>This area is component0.vue. </h3> <div>compoDatas is the following.</div> <span class="mr-3" v-for="( compoData, index ) in compoDatas" :key="index"> {{ compoData.data }} </span> </div> </template> <style> .bgYellow{ background-color: #EDE169; } </style>
components/component0.vue <script setup> var useStateKey = "initial"; var compoDatas = useState( useStateKey ).value.compoDatas; </script> <template> <div class="bgYellow pa-3"> <h3>This area is component0.vue. </h3> <div>compoDatas is the following.</div> <span class="mr-3" v-for="( compoData, index ) in compoDatas" :key="index"> {{ compoData.data }} </span> </div> </template> <style> .bgYellow{ background-color: #EDE169; } </style>
script内では、キーを用意して、そのキーに対応するデータをuseStateを使って取り出しています。template内では、取り出したデータをv-forを使って取り出しています。一部Vuetifyの記述がありますので、Vuetifyを入れていない方は、pa-3とmr-3を削除してください。 index.vueでも同様に下記のようにしてデータを取り出しています。
script内では、キーを用意して、そのキーに対応するデータをuseStateを使って取り出しています。template内では、取り出したデータをv-forを使って取り出しています。一部Vuetifyの記述がありますので、Vuetifyを入れていない方は、pa-3とmr-3を削除してください。 index.vueでも同様に下記のようにしてデータを取り出しています。
index.vue <script setup> var useStateKey = "initial"; var pageDatas = useState( useStateKey ).value.pageDatas; var add = () => { pageDatas.push( { data: "CDE" } ); } </script> <template> <div class="bgBlue pa-3"> <h3>This area is index.vue. </h3> <div>pageDatas is the following.</div> <div> <span class="mr-3" v-for="( pageData, index ) in pageDatas" :key="index"> {{ pageData.data }} </span> </div> <VBtn @click="add" class=" bgGreen mt-3">add</VBtn> </div> </template> <style> .bgBlue{ background-color: #9BF4FF; } .bgGreen{ background-color: #D1D32A; } </style>
index.vue <script setup> var useStateKey = "initial"; var pageDatas = useState( useStateKey ).value.pageDatas; var add = () => { pageDatas.push( { data: "CDE" } ); } </script> <template> <div class="bgBlue pa-3"> <h3>This area is index.vue. </h3> <div>pageDatas is the following.</div> <div> <span class="mr-3" v-for="( pageData, index ) in pageDatas" :key="index"> {{ pageData.data }} </span> </div> <VBtn @click="add" class=" bgGreen mt-3">add</VBtn> </div> </template> <style> .bgBlue{ background-color: #9BF4FF; } .bgGreen{ background-color: #D1D32A; } </style>
やっていることは、component0.vueとほぼ同じです。ボタンとボタンを押したときの関数を用意しています。
やっていることは、component0.vueとほぼ同じです。ボタンとボタンを押したときの関数を用意しています。
3. 動作確認
3. 動作確認
yarn devをしてアクセスすると下の画像のように表示されます。
yarn devをしてアクセスすると下の画像のように表示されます。
ボタンを押すと、「012 345 CDE」という表示になります。面白いことに、開発者ツールでボタンを押したときに入る関数で、ブレークポイントを貼ってpush前後で確認すると、グローバル変数の、window -> __NUXT__ -> state(useNuxtApp().payload.stateに相当)を確認すると、下の画像のようにpageDatasに追加してくれています。
ボタンを押すと、「012 345 CDE」という表示になります。面白いことに、開発者ツールでボタンを押したときに入る関数で、ブレークポイントを貼ってpush前後で確認すると、グローバル変数の、window -> __NUXT__ -> state(useNuxtApp().payload.stateに相当)を確認すると、下の画像のようにpageDatasに追加してくれています。
4. おわりに
4. おわりに
とても便利ですね。キーを設定するとC言語で言うところのポインタを返してくれているようなイメージでしょうか。
とても便利ですね。キーを設定するとC言語で言うところのポインタを返してくれているようなイメージでしょうか。
© 2023 - Comytom LLC