vuex getter의 Nuxt 플러그인 기능에 액세스하는 중
nuxtjs와 vuex를 시작하고 있습니다.방금 Getter에서 결합된 삽입 플러그인 기능에 액세스하는 데 문제가 발생했습니다.예:
nuxt.config.config.syslog
...
plugins: [
'~/plugins/myplugin.js'
],
...
~/plugins/myplugin.js
function doSomething(string) {
console.log("done something: " + string)
}
export default ({ app }, inject) => {
inject('doSomething', (string) => doSomething(string))
}
~/store/index.devel
export const actions = {
someAction({commit}) {
this.$doSomething("Called from Action") // works
}
}
export const getters = {
someGetter: state => {
this.$doSomething("Called from Getter") // throws error
}
}
이 코드는 액션에 유효합니다.someAction
하지만 getter에서의 콜은someGetter
를 나타내는 에러가 발생합니다.this
정의되어 있지 않습니다.
nuxt 문서에서는 돌연변이 및 액션에서 주입된 플러그인 함수에 액세스하는 예를 보여 줄 뿐 getter가 플러그인 함수에 액세스할 수 없다는 것을 명시적으로 언급하지 않았습니다.이것이 nuxt에서도 가능한가 아니면 getter에서 플러그인 메서드를 호출하지 않는 타당한 이유가 있는가?아무쪼록 잘 부탁드립니다.
하려고 하면 안 돼do_something
겟터로.Getters는 상점의 상태에서만 상태를 도출하기 위한 것입니다.중요한 점은 파생된 상태를 별도로 저장하고 최신 상태로 유지할 필요가 없다는 것입니다.예를 들어 태스크 목록이 있고 완료된 태스크의 개별 목록이 아닌 완료된 태스크에 대한 getter가 있다고 가정합니다.completedTasks: state => state.tasks.filter(task => task.completed)
.
돌연변이는 스토어 상태를 변환하는 데만 사용해야 합니다.
마지막으로 웹 서버 API와 같은 필요한 모든 작업을 수행할 수 있습니다.this.$do_something
그리고 돌연변이를 일으켜 결과를 바탕으로 상태를 업데이트합니다.
그래서 저는 Nuxt가 여기서 하는 일이 말이 된다고 생각합니다. 행동을 주입하는 것은 말이 되지만, 얻는 사람에게는 그렇지 않습니다.
저는 같은 문제에 직면했고, 그것을 통해 피할 수 있었습니다.
export const getters = {
someGetter: state => {
$nuxt.$doSomething("Called from Getter") // Grab $nuxt from the global scope
}
}
SSR 모드에서 작동하는지 확실하지 않습니다.
언급URL : https://stackoverflow.com/questions/61593710/accessing-nuxt-plugin-function-in-vuex-getter
'programing' 카테고리의 다른 글
구성 요소에서 vuex에 API 데이터 커밋 (0) | 2022.05.30 |
---|---|
Vue 2 AOT 사전 컴파일 (0) | 2022.05.30 |
Windows를 대체할 만한 Valgrind가 있습니까? (0) | 2022.05.29 |
vuej에서 쿠키를 설정하는 방법 (0) | 2022.05.29 |
각 테스트 파일에 컴포넌트가 필요한 모든 것을 Import하지 않도록 하려면 어떻게 해야 합니까? (0) | 2022.05.29 |