v-model: 双向数据绑定语法糖:1.input标签的值根据data里的name确定,所以用:value='name', 2.input标签的值变化,会修改name值,用input事件
<template> <div class="son-container"> name: <!-- <input type="text" :value="name" @input="name = $event.target.value" placeholder="请输入名字" /> --> <input type="text" v-model="name" placeholder="请输入名字" /> <button @click="changename">changename</button> </div> </template><script> export default { data() { return { name: '', }; }, methods: { changename() { this.name = '张三'; }, }, watch: { name(val) { console.log(val); }, }, }; </script>
单选框 /复选框: :在<input>上写v-model, v-model的值等于value,就会选中;
<p> sex: <input type="radio" v-model="sex" value="man" /> <input type="radio" v-model="sex" value="femal" /> </p> <p> 爱好: <input type="checkbox" v-model="loves" value="football" />football <input type="checkbox" v-model="loves" value="basketball" />basketball <input type="checkbox" v-model="loves" value="pingpang" />pingpang </p>
loves是数组
选择框: 单选复选都写在select上;
<p> 家乡: <select name="province" v-model="provice"> <option disabled value="">请选择家乡</option> <option value="北京">北京</option> <option value="天津">天津</option> <option value="河北">河北</option> </select> </p> <p> 家乡: <select name="provinces" v-model="loveProvices" multiple> <option disabled value="">请选择喜欢的城市</option> <option value="北京">北京</option> <option value="天津">天津</option> <option value="河北">河北</option> </select> </p>
provinces是数组;
$listeners: 父组件传给子组件的事件函数;
//父组件中 <template> <div class="father-container"> <Son @submit='sendMessage' /> </div> </template>
子组件中的$listeners就是submit,可以在子组件中调用父组件的这个函数。
这个函数也可以用props传值传过来,
也可以用$emit来触发。
v-model修饰符:
- .numver
- .lazy
- .trim