웹 소켓 돌연변이를 사용하여 vuex를 구성하는 방법
vue+vuex+vue-native-websocket을 사용합니다.vuex에서 웹 소켓 메시지를 처리하는 문서에 따르면 SOUTE_... 돌연변이를 사용해야 합니다.
지금은 store/index.js 파일에 있는 모든 메시지를 다음과 같이 처리합니다.
mutations: {
...
SOCKET_ONMESSAGE(): {
switch(message.cmd) {
case 'userRsp'
...
case 'connectionRsp'
...
case 'otherDataRsp'
etc.
}
}
원하는 것은 user.js vuex 모듈의 모든 사용자 관련 데이터와 connections.js vuex 모듈의 모든 연결 데이터를 처리하는 것입니다.
각 컴포넌트 내에서 SOKET_ONMESSAGE를 사용해야 합니까?이 경우 테스트 결과 ON_MESSAGE는 메시지가 아닌 모듈에서도 호출됩니다.
vue-native-websocket readme에서 다음을 수행합니다.
형식 포함:
'json'
가능한[...]
가 있는 경우
.namespace
이 데이터에서는, 메세지가 송신됩니다.namespaced: true
store(스토어 모듈에서 이 기능을 켜야 합니다).가 있는 경우
.mutation
응답 데이터의 값, 대응하는 돌연변이가 이름과 함께 호출됩니다.SOCKET_[mutation value]
이 있는 경우
.action
값, 즉 반응 데이터, 즉.action: 'customerAdded'
대응하는 액션은 이름으로 호출됩니다.actions: { customerAdded (context) { console.log('action received: customerAdded') } }
를 사용하는 경우json
포맷 옵션:
Vue.use(VueNativeSock, 'ws://localhost:9090', { format: 'json' })
그런 다음 다음 다음 작업을 수행할 수 있습니다.namespace
그리고.mutation
또는action
이름을 입력하면 스토어 모듈에서 올바른 함수를 호출할 수 있습니다.
백엔드가 응답에 네임스페이스 속성을 삽입해야 한다는 의미입니까?
네. 예를 들어 백엔드는namespace: "user"
같은 이름의 모듈을 호출하기 위한 데이터입니다.
백엔드가 메시지를 처리해야 할 프런트엔드의 핸들러를 정의하는 것은 잘못된 관행 아닌가요?
백엔드는 여러 애플리케이션에서 사용됩니까?직접 짓지 않는 거?그렇지 않은 경우 백엔드와 프런트엔드는 동일한 응용 프로그램입니다.
백엔드에서 너무 상세하게 설명하는 것을 피하기 위해서는namespace
프런트엔드에서 처리하도록 하고 있지만 액션을 말하는 것이 더 쉬울 것입니다.이것들은 일반적인 속성명이기 때문에 너무 결합되어 있지 않습니다.
언급URL : https://stackoverflow.com/questions/49629494/how-to-organize-the-vuex-with-websocket-mutations
'source' 카테고리의 다른 글
상위 구성 요소에서 하위 속성 변경 내용을 보는 방법 (0) | 2022.08.20 |
---|---|
이 날짜 형식은 무엇입니까?2011-08-12T20:17:46.384Z (0) | 2022.08.20 |
Java에서 일반 텍스트 파일 읽기 (0) | 2022.08.20 |
매개 변수화된 테스트 이름 변경 (0) | 2022.08.19 |
laravel-vujs 프로젝트의 루트/베이스 URL을 설정하려면 어떻게 해야 합니까? (0) | 2022.08.19 |