반응형
Vue 2 변경 시 범위 입력 값 전달
Vue 2에서: 저는App
컴포넌트, 즉,Slider
컴포넌트:
App.vue
<template>
<div>
<Slider :foo="store.foo"></Slider>
</div>
</template>
<script>
import store from './components/store.js';
import Slider from './components/Slider.vue';
export default {
name: 'app',
components: { Slider },
data() {
return {
store: store
}
},
methods: {
changeFoo(foo) {
console.log('change!', foo);
},
},
}
</script>
Slider.vue
<template>
<div>
<input type="range" min="1" max="100" step="1" @change="changeFoo" />
</div>
</template>
<script>
export default {
props: ['foo'],
methods: {
changeFoo() {
this.$emit('changeFoo', foo);
}
}
}
</script>
문제는 슬라이더 값이 전달되지 않는다는 것입니다.emit
에 있어서의 성명.Slider.vue
이유는 알겠는데 어떻게 고쳐야 할지 모르겠어요나는 다음을 시도했다:
v-model="foo"
에서input
소품 변이 금지라고 뷰가 경고했어요
프롭을 사용하는 대신 슬라이더에 대한 새 데이터 변수를 만들고 다음과 같이 이 변수를 내보냅니다.
<template>
<div>
<input v-model="sliderVal" type="range" min="1" max="100" step="1" @change="changeFoo" />
</div>
</template>
<script>
export default {
props: ['foo'],
data: function() {
return {
sliderVal: ""
}
}
methods: {
changeFoo() {
this.$emit('changeFoo', this.sliderVal);
}
}
}
</script>
앱에도 있습니다.vue는 다음과 같이 출력된 이벤트를 나열해야 합니다.
<template>
<div>
<Slider :foo="store.foo" @change-foo="changeFoo"></Slider>
</div>
</template>
언급URL : https://stackoverflow.com/questions/42860075/pass-range-input-value-on-change-in-vue-2
반응형
'programing' 카테고리의 다른 글
Vuex 3: 상태가 정의되지 않음 (0) | 2022.08.18 |
---|---|
JAVA_HOME이 잘못된 디렉터리로 설정되었습니다. (0) | 2022.08.18 |
Is it bad to declare a C-style string without const? If so, why? (0) | 2022.08.18 |
Vuex, Nuxt:알 수 없는 작업 유형 (0) | 2022.08.18 |
카드 데크 그룹에 링크를 추가하려면 어떻게 해야 하나요? (0) | 2022.08.18 |