【Vue3】2-10 : 表单处理与双向数据绑定原理

本书目录:点击进入

一、表单处理

1.1、【双向绑定】实现方式一:v-model

[> 代码](#> 代码)

[> 效果](#> 效果)

[1.2、【双向绑定】实现方式二::value属性 + input事件](#1.2、【双向绑定】实现方式二::value属性 + input事件)

[> 代码](#> 代码)

[> 效果 (同上)](#> 效果 (同上))

二、实战

[2.1 【v-model 示例】输入框](#2.1 【v-model 示例】输入框)

[> 代码 + 效果 (见1.1)](#> 代码 + 效果 (见1.1))

[2.2 【v-model 示例】单选框](#2.2 【v-model 示例】单选框)

[> 代码](#> 代码)

[> 效果](#> 效果)

[2.3 【v-model 示例】复选框](#2.3 【v-model 示例】复选框)

[> 代码](#> 代码)

[> 效果](#> 效果)

[2.4 【v-model 示例】下拉菜单](#2.4 【v-model 示例】下拉菜单)

[> 代码](#> 代码)

[> 效果](#> 效果)


一、表单处理

  • 收集表单数据,发送给后端

  • 把后端的数据进行回显

  • v-model 指令 实现响应式数据的处理。原理相当于 :value属性 + input事件

  • v-model除了可以处理输入框以外,也可以用在单选框、复选框、以及下拉菜单中。

1.1、【双向绑定】实现方式一:v-model

> 代码

html 复制代码
<body>
  <div id="app">
     <input type="text" v-model="message">
  </div>
  <script>

    let vm = Vue.createApp({
      data(){
        return {
          message: 'hello world'
        }
      }
    }).mount('#app');

    setTimeout(()=>{
      vm.message = 'hi vue'
    }, 5000)

  </script>
</body>

> 效果

1.2、【双向绑定】实现方式二::value属性 + input事件

> 代码

html 复制代码
<body>
  <div id="app">
    <!--<input type="text" v-model="message">-->
    <input type="text" :value="message" @input="message = $event.target.value">
  </div>
  <script>

    let vm = Vue.createApp({
      data(){
        return {
          message: 'hello world'
        }
      }
    }).mount('#app');

    setTimeout(()=>{
      vm.message = 'hi vue'
    }, 5000)

  </script>
</body>
</html>

> 效果 (同上)

二、实战

2.1 【v-model 示例】输入框

> 代码 + 效果 (见1.1)

2.2 【v-model 示例】单选框

> 代码

html 复制代码
  <div id="app">
    <input type="radio" v-model="gender" value="女">女<br>
    <input type="radio" v-model="gender" value="男">男<br>
    {{ gender }} 

  </div>
  <script>

    let vm = Vue.createApp({
      data(){
        return {
          gender: '男'
        }
      }
    }).mount('#app');

  </script>

> 效果

2.3 【v-model 示例】复选框

> 代码

html 复制代码
  <div id="app">
    <input type="checkbox" v-model="fruits" value="苹果">苹果<br>
    <input type="checkbox" v-model="fruits" value="西瓜">西瓜<br>
    <input type="checkbox" v-model="fruits" value="哈密瓜">哈密瓜<br>
    {{ fruits }}

  </div>

  <script>
    let vm = Vue.createApp({
      data(){
        return {
          fruits: ['西瓜', '哈密瓜']
        }
      }
    }).mount('#app');
  </script>

> 效果

2.4 【v-model 示例】下拉菜单

> 代码

html 复制代码
  <div id="app">
    <select v-model="city">
      <option value="北京">北京</option>
      <option value="上海">上海</option>
      <option value="杭州">杭州</option>
    </select>
    {{ city }}
  </div>

  <script>
    let vm = Vue.createApp({
      data(){
        return {
          city: '杭州'
        }
      }
    }).mount('#app');
  </script>

> 效果

相关推荐
明月看潮生10 分钟前
青少年编程与数学 02-003 Go语言网络编程 15课题、Go语言URL编程
开发语言·网络·青少年编程·golang·编程与数学
南宫理的日知录21 分钟前
99、Python并发编程:多线程的问题、临界资源以及同步机制
开发语言·python·学习·编程学习
逊嘘38 分钟前
【Java语言】抽象类与接口
java·开发语言·jvm
Half-up40 分钟前
C语言心型代码解析
c语言·开发语言
别拿曾经看以后~1 小时前
【el-form】记一例好用的el-input输入框回车调接口和el-button按钮防重点击
javascript·vue.js·elementui
我要洋人死1 小时前
导航栏及下拉菜单的实现
前端·css·css3
川石课堂软件测试1 小时前
性能测试|docker容器下搭建JMeter+Grafana+Influxdb监控可视化平台
运维·javascript·深度学习·jmeter·docker·容器·grafana
科技探秘人1 小时前
Chrome与火狐哪个浏览器的隐私追踪功能更好
前端·chrome
Source.Liu1 小时前
【用Rust写CAD】第二章 第四节 函数
开发语言·rust
monkey_meng1 小时前
【Rust中的迭代器】
开发语言·后端·rust