一、题目
使用v-model指令对表单元素实现双向绑定
二、代码及思路
(1)首先在setup里搜索框的属性 和 点击搜索的方法 ,以及下方定义的数据。
setup() {
//1.
const search = ref("");
const checked = () => {
console.log(search.value);
};
//定义一些热门搜索关键字来支撑数据
const arr = ref(["小米", "华为", "比亚迪", "宁德时代"]);
// 为了实现双向绑定 下方的内容要和输入框实现绑定
return {
search,
checked,
arr,
};
},
(2)然后在template标签里使用@click绑定点击事件 使用 v-for 遍历下方展示的数据的数组,使用
v-model 在表单元素上进行双向绑定。
<template>
<input type="text" v-model="search" />
<button @click="checked">搜索</button>
<div>
热搜:
<!-- 点击数据 会把数组的值传给输入框 -->
<span @click="search = arr" style="margin-right: 10px" v-for="arr in arr">{{
arr
}}</span>
</div>
</template>
(3) 完整代码
<script>
import { ref } from "vue";
export default {
setup() {
//1.
const search = ref("bg");
//2.定义一个保存性别的属性
const sex = ref("");
//3 定义一个保存爱好的数组
const hobbys = ref([]);
//4 定义一个保存单选框的属性
const city = ref("");
const checked = () => {
console.log(search.value);
};
//定义一些热门搜索关键字来支撑数据
const arr = ref(["小米", "华为", "比亚迪", "宁德时代"]);
// 为了实现双向绑定 下方的内容要和输入框实现绑定
return {
search,
checked,
arr,
sex,
hobbys,
city,
};
},
};
</script>
<template>
<input type="text" v-model="search" />
<button @click="checked">搜索</button>
<div>
热搜:
<!-- 点击数据 会把数组的值传给输入框 -->
<span @click="search = arr" style="margin-right: 10px" v-for="arr in arr">{{
arr
}}</span>
<hr />
<span>
性别:<input type="radio" name="sex" v-model="sex" value="man" />男
<input type="radio" name="sex" v-model="sex" value="women" />女
</span>
<hr />
<span>
<input type="checkbox" value="singer" v-model="hobbys" />唱
<input type="checkbox" value="jump" v-model="hobbys" />跳
<input type="checkbox" value="rapper" v-model="hobbys" />rap
</span>
<hr />
<span>
爱好:
<select v-model="city">
<option value="bg">北京</option>
<option value="sh">上海</option>
<option value="tj">天津</option>
</select>
</span>
</div>
</template>