Как реализовать компонент ButtonSwitch?
Как реализовать компонент ButtonSwitch Нужен реализовать передачу значения с v-model на верх компонента
Обьявляю компонент <ButtonSwitch @value="isActive" /> Сам компонент
<template>
<label class="switch">
<input type="checkbox" @click="handleGetValue">
<span class="slider round"></span>
</label>
</template>
<script>
export default {
name: 'Toggle',
emits: ['update:value'],
methods: {
handleGetValue() {
this.$emit('value');
},
},
};
</script>
Ответы (1 шт):
Автор решения: MoloF
→ Ссылка
Vue.component('ButtonComponent', {
data: () => ({
active: false
}),
methods: {
toggle() {
this.active = !this.active;
}
},
watch: {
active(value) {
this.$emit('input', value);
}
},
template: `<button @click="toggle()">Switch</button>`
});
Vue.component('MainComponent', {
data: () => ({
is_active: false
}),
template: `
<main>
<h1>Count: <b>{{ is_active }}</b></h1>
<button-component v-model="is_active" />
</main>
`
});
new Vue({ el: "#app" })
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<main-component />
</div>