Categories: 정보

Nuxt3 Store

  • composables/states.ts
export const useCounter = () => useState<number>('counterState', () => 0);
export const useColor = () => useState<string>('color', () => 'pink');
  • pages/index.vue
<script setup lang="ts">
const counter = useState('counter', () => Math.round(Math.random() * 1000));
const color = useColor(); // Same as useState('color')
const counterState = useCounter();
</script>

<template>
    <div>
        <div>
            Counter: {{ counter }}
            <button @click="counter++">+</button>
            <button @click="counter--">-</button>
        </div>
        <div>
            Counter: {{ counterState }}
            <button @click="counterState++">+</button>
            <button @click="counterState--">-</button>
        </div>

        <p>Current color: {{ color }}</p>
    </div>
</template>

기존에 사용하던 store, composition API ? 형태로 수정 결과

import { defineStore } from 'pinia';

export const surveyStore = defineStore('survey', () => {
    const surveyList = ref([]);
    const apiResult = ref(0);

    async function fetchSurveyList() {
        try {
            const res = await $fetch(`/backapi/selectList`, {
                method: 'POST',
                body: {
                    mapperName: 'survey.selectSurveyList',
                    params: { surveyId: 1 },
                },
            });
            console.log(res.resMap);

            surveyList.value = res.resMap.reduce((acc, obj) => {
                const { questionId } = obj;
                acc[questionId] = acc[questionId] ?? [];
                acc[questionId].push(obj);
                return acc;
            }, {});
        } catch (error) {
            surveyList.value = [];
            console.log(error);
        }
    }

    return { surveyList, apiResult, fetchSurveyList };
});
mpotioncom

Recent Posts

기초 영어 문장 #3 PDF 파일 첨부

기초 영어 문장으로 다시 시작하는 영어이기에 간단하고 반복적인 것부터 접근해야 합니다. 모르는 단어가 적을수록 자신감이…

2주 ago

기초 영어 문장 #2 PDF 파일 첨부

기초 영어 문장으로 다시 시작하는 영어이기에 간단하고 반복적인 것부터 접근해야 합니다. 모르는 단어가 적을수록 자신감이…

2주 ago

기초 영어 문장 #1 PDF 파일 첨부

기초 영어 문장으로 다시 시작하는 영어이기에 간단하고 반복적인 것부터 접근해야 합니다. 모르는 단어가 적을수록 자신감이…

2주 ago

[Excel Practice 1] Input :: How to enter numbers, letters, dates, times, and double lines

[Excel Practice 1] Input :: How to enter numbers, letters, dates, times, and double lines…

9개월 ago

[Excel] Those who need Excel basics, Need practical applications for Excel

How I got started & who I am hello. I want to learn Excel, but…

9개월 ago

[Google Oauth2] Error GSI_LOGGER : The given client ID is not found, The given origin is not allowed for the given client ID.

Google Oauth2를 작업하고 있을 때 다음과 같은 오류가 발생한다면, 간단하게 체크해볼 사항이 있다. The given…

11개월 ago