반응형
Nuxt/Vue 반응체 속성
클래스를 추가하고 싶다menu-opened
에서body
메뉴 버거 div를 클릭했을 때 태그를 붙입니다.
마이디브
<div v-on:click="openMenu"></div>
open Menu 메서드
methods: {
openMenu() {
console.log('open menu launch')
this.$store.dispatch('menu/setMenu', true)
}
}
나의 가게
state = {
isMenuOpen: false
}
actions = {
setMenu({ commit }, value) {
commit('SET_MENU_OPEN_STATUS', value)
}
}
mutations= {
SET_MENU_OPEN_STATUS(state, newState){
state.isMenuOpen = newState
}
}
템플릿에서는 isMenuOpen 값 상태에 따라 본문에 클래스를 추가하기 위해 다음 코드를 받았습니다.
export default {
data() {
return {
menuState: this.$store.state.isMenuOpen
}
},
head () {
return {
bodyAttrs: {
class: this.menuState ? 'menu-opened' : ''
}
}
}
}
내 스토어는 잘 작동하고 있고, div를 클릭하면 값이 바뀌지만, 헤드 기능이 반응하지 않으면 클래스를 추가하지 않습니다.
도와줘서 고맙습니다.
인 Nuxt
이는 헤드 메서드가 첫 페이지 로드 시 한 번만 호출되기 때문입니다.값을 갱신할 수 있지만,head()
기능을 회복합니다.
이 작업을 수행할 수 있습니다.watcher
아니면 가게에서 전화를 걸 수도 있습니다.
빠르고 더러운 방법은 계산된 속성과 감시자를 조합하는 것입니다.
export default {
data() {
return {
menuState: this.$store.state.isMenuOpen
}
},
head () {
return {
bodyAttrs: {
class: this.isMenuOpen ? 'menu-opened' : ''
}
}
},
computed: {
isMenuOpen () {
return this.$store.state.isMenuOpen
}
},
watch: {
isMenuOpen () {
this.head()
}
}
}
인뷰
이런 이벤트도 봐야 되고mounted
또는beforeDestroy
거기에 기술되어 있다
https://vuejs.org/v2/guide/instance.html
순수한 js를 사용하여 dom을 수정한다.
const bodyElement = document.querySelector('body')
bodyElement.classList.add('a');
bodyElement.classList.remove('b');
bodyElement.classList.toggle('c');
https://developer.mozilla.org/pl/docs/Web/API/Element/classList
다음과 같은 작업을 수행할 수 있습니다.
마이디브
<div v-on:click="openMenu" ref="myDiv"></div>
open Menu 메서드
methods: {
openMenu() {
console.log('open menu launch')
this.$refs.myDiv.closest('body').classList.add("menu-opened")
}
}
그런 다음 닫기 메뉴 버튼에 대해 다음과 같은 기능을 구현해야 합니다.
this.$refs.myDiv.closest('body').classList.remove("menu-opened")
언급URL : https://stackoverflow.com/questions/52099638/nuxt-vue-reactive-body-attributes
반응형
'source' 카테고리의 다른 글
C의 부울 값 사용 (0) | 2022.08.11 |
---|---|
makefile의 CXX 값은 어디에서 얻을 수 있습니까? (0) | 2022.08.11 |
vue-cli 설정 중 문제 발생 (0) | 2022.08.11 |
[N...]이란?C 집약 이니셜라이저의 M > 평균? (0) | 2022.08.11 |
자바에서의 @UniqueConstraint 주석 (0) | 2022.08.11 |