Javascript-форум (https://javascript.ru/forum/)
-   Библиотеки/Тулкиты/Фреймворки (https://javascript.ru/forum/library-toolkit-framework/)
-   -   V-model props value нюанс уточнить (https://javascript.ru/forum/library-toolkit-framework/79319-v-model-props-value-nyuans-utochnit.html)

Иса Мирзоев 23.01.2020 14:22

V-model props value нюанс уточнить
 
Приветствую всех) Просьба пояснить, откуда в коде берется значение value? Спасибо) Опишу свои догадки: мы отсылаем в функции-эмитере булевское значение, и потом ЭТО ЖЕ значение получаем через функцию v-model, и оно по умолчанию вставляется в value, которое мы получаем в пропс. То есть не в самом пропсе дело, а именно в value внутри него, так как пробовал value1 получать, везде заменял, но код не работал. Спасибо еще раз)

Сначала компонент
<template>

<div>
  <button @click="developing(true)"  class="on"  :class="{'active':value}">Красный</button>
  <button @click="developing(false)" class="off" :class="{'active':!value}">Зеленый</button>
</div>

</template>



export default{
  props:["value"],
  methods:{
    developing(otherValue){
      this.$emit("input",otherValue)
    }
  }
}



Код:

<style scoped>

button{
  border: none;
  padding: 5px 15px;
  cursor: pointer;
  margin-right: 20px;
  outline: none
}

button:active{
  box-shadow: inset 1px 1px 2px rgba(0,0,0, .5)
}

.on.active{
  background:green;
  color: #fff;
}

.off.active{
  background: red;
  color:#fff;
}


</style>

Теперь App

<template>
        <div>
          <app-onoff v-model="switched"></app-onoff>
        </div>
</template>


import onoff from './onOff'


export default{
  data(){
    return{
      switched:false
    }
  },components:{
    appOnoff:onoff
  }

}


Код:

</script>


<style scoped>

textarea{
  width: 400px;
  height: 100px;
}

p{
white-space: pre
}

</style>


Aetae 23.01.2020 14:46

v-model="switched"
- это сокращение для записи:
:value="switched" @input="switched = $event"
, всё.


Часовой пояс GMT +3, время: 21:06.