Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- custom printing
- Each child in a list should have a unique "key" prop.
- device in use
- html
- github pdf
- ELECTRON
- rolldown
- ffi-napi
- animation
- augmentedDevice
- vercel git lfs
- 이미지 데이터 타입
- nextjs
- npm package
- camera access
- adb pair
- Can't resolve
- Git
- Failed to compiled
- silent printing
- electron-packager
- react-native
- github lfs
- react-native-dotenv
- Recoil
- adb connect
- dvh
- camera permission
- github 100mb
- 티스토리 성능
Archives
- Today
- Total
Bleeding edge
Pinia with Vue 사용법! 본문
이 글은 Vue와 Pinia를 사용하면서.. 시행착오가 많았었는데, 제가 다시 읽고 Pinia를 다시 사용할 때 편하기 하기 위해서 작성한 글입니다.
1. Pinia 생성
main.js
import { createApp } from "vue";
import { createPinia } from "pinia";
import router from "./routes";
import App from "./App.vue";
import "./assets/styles/tailwind.css";
const app = createApp(App);
app.use(createPinia());
app.use(router);
app.mount("#app");
main.js에, router 앞에 createPinia를 사용한다. app.use(createPinia).use(router)와 같이 사용해도 괜찮다.
2. 사용하고 싶은 기능의 Store을 만든다.(이름은 기능 이름 + Store을 사용하면 된다)
/store/Store.ts
import { defineStore } from "pinia";
//필수
import { useAnotherStore } from "./anotherStore";
export const useThisState = defineStore("StoreId", {
state: (): stateName => ({
//state 기본 값들
stateElement1Name :{},
stateElement2Name :[],
stateElement3Name : 0
//기본 값의 구체적인 값
getters: {
//vue의 computed의 기능과 유사하다
getters1():{
return this.stateElement1Name
},
getters2():{
const anotherElement = useAnotherStore().anotherStoreElement;
return anotherElement + stateElement3Name
//다른 스토어에서 값을 불러와서 사용할 수 있다
}
}
actions:{
//vuedml methods와 기능이 유사하다
async fetchSomething(){
fetch("url")
.then((response)=>response.json())
//async도 역시 사용이 가능하다
}
}
});
3. 사용할 위치에서 호출
<template>
<div>
</div>
</template>
<script>
import { computed } from "vue";
//필수
import { useThisState } from "../store/thisStore";
//필수
export default{
setup(){
return {
useGetters1 : computed(() => thisState.getters1),
useGetters2 : computed(() => thisState.getters2),
useActions2 : computed(() => thisState.fetchSomething),
//주의 변수를 넎더라도 thisState.getters1(arg1, arg2)과 같이쓰지말고 괄호가 없어야한다
}
}
}
</script>
4. 상위 vue에서 Store 호출
import {useThisStore} from "./store/thisStore.vue";
import {useAnotherStore} from "./store/anotherStore.vue";
export default{
const thisStore=useThisStore()
const anotherStore=useAnotherStore()
thisStore.getters1()
//사용할꺼면 호출
}
끝!나머지는 스토어에서 호출한 값을이용하면 된다.
'Javascript > Vue' 카테고리의 다른 글
Vue 정리 - 수정중... (0) | 2022.06.16 |
---|