Vue 数据双向绑定

news/2024/5/11 0:33:07/文章来源:https://blog.csdn.net/qq_34556414/article/details/131508559
双向数据绑定 : 通过前面学习知道 Vue 是数据驱动的,数据驱动有一个精髓之处是数据双向绑定, 即当数据发生变化的时候,视图也就发生变化,当视图发生变化的时候,数据也会跟着同步变化。(就是mvvm数据发生变化的更新策略)
<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>首页</title><link href="" type="text/css" rel="stylesheet"/><script src="https://unpkg.com/vue@3"></script><style type="text/css"></style>
</head><body>    <div id="vue"><input type="text" v-model="msg"><p>{{ msg }}</p></div><script type="text/javascript">const HelloVueApp = {data(){return{msg: "Hello"}}} //挂载到html当中Vue.createApp(HelloVueApp).mount('#vue')</script></body></html>
v-model 指令其实是一个语法糖,背后本质上包含 v-bind v-on 两个操作。
<input v-model="sth" />
// 等同于
<input :value="sth" @input="sth = $event.target.value" />

首先使用v-bind绑定一个value,v-bind是用来绑定变量的,因为value是其固定属性,value后面是变量的名称,input的值其实就是sth变量的值。

同时还干了一件事情就是v-on,就是@input,监听的就是input的效果。当你的输入框输入的东西那么元素就发生变化了,它监听的就是你输入框的一个东西。

输入东西和删除东西也好,输入框发生变化就会触发@input="sth = $event.target.value",这个就是拿到具体事件的具体值。

详解
  • $event 指代当前触发的事件对象。
  • $event.target 指代当前触发的事件对象的dom
  • $event.target.value 就是当前domvalue值  (就是输入框中间的值,然后再赋值到sth上面去)

v-bind是用来处理data()里面变量绑定到input里面的值,但是如果input发生了变化,那么发生变化的值会给到data里面sth。也就是上面发生变化给到下面,下面发生变化给到上面。

input输入框,绑定了message的值,input是事件的监听,然后调用input的方法,这个方法里面传event,这个就是将event给到message。

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>首页</title><link href="" type="text/css" rel="stylesheet"/><script src="https://unpkg.com/vue@3"></script><style type="text/css"></style>
</head><body>    <div id="vue"><input type="text" :value="msg" @input="input($event)"><p>{{ msg }}</p></div><script type="text/javascript">const HelloVueApp = {data(){return{msg: "Hello v-model"}},methods:{input(event){this.msg = event.target.valueconsole.log(event.target.value,this.msg)}}} //挂载到html当中Vue.createApp(HelloVueApp).mount('#vue')</script></body></html>

可以看到当值每次发生变化的时候,它的message都是赋值成功的。event.target.value它其实就是dom里面的值,其实就是dom元素里面具体的值。其实就是输入框里面的值发生了变化给到了msg。

v-model: 单选框

单选框(radio): 单个选择结果绑定到一个v-model的值中

<input type="radio" value="go" v-model="msg">Go</input>   Go是显示给用户看的,正真绑定到msg的值的是value对应的值。

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>首页</title><link href="" type="text/css" rel="stylesheet"/><script src="https://unpkg.com/vue@3"></script><style type="text/css"></style>
</head><body>    <div id="vue"><input type="radio" value="go" v-model="msg">Go</input><input type="radio" value="vue" v-model="msg">Vue</input><p>{{ msg }}</p></div><script type="text/javascript">const HelloVueApp = {data(){return{msg: ""}}} //挂载到html当中Vue.createApp(HelloVueApp).mount('#vue')</script></body></html>

v-model: 多选框
多选框 (checkbox) : 多个选择结果绑定到一个 v-model 的值中
<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>首页</title><link href="" type="text/css" rel="stylesheet"/><script src="https://unpkg.com/vue@3"></script><style type="text/css"></style>
</head><body>    <div id="vue"><input type="checkbox" value="swim" v-model="selected">游泳</input><input type="checkbox" value="gim" v-model="selected">健身</input><input type="checkbox" value="travel" v-model="selected">旅游</input><p>{{ selected }}</p></div><script type="text/javascript">const HelloVueApp = {data(){return{selected: []}},watch:{selected(){console.log(this.selected)}}} //挂载到html当中Vue.createApp(HelloVueApp).mount('#vue')</script></body></html>

 

 

上面就是复选框结合v-moduel的使用。

 

 

v-model:登录案例

登录案例:获取用户输入用户名和密码

<form action="#">是要去提交到哪个url,正常情况下是https"//xxxxxx,#表示还是在原来的页面,这样就不乱跳了。

高度封装的框架,减少对dom的操作,包括element ui这些组件,它其实都帮你做了这些事情。无论是美观性还是功能性都会非常简单,都不需要使用form这么老的方式去做了。

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>首页</title><link href="" type="text/css" rel="stylesheet"/><script src="https://unpkg.com/vue@3"></script><style type="text/css"></style>
</head><body>  <h1>欢迎来到管理页面后台</h1>  <div id="vue"><form action="#">用户名:<input type="text" v-model="form.username">密码:<input type="text" v-model="form.password"><button @click="loginBtn()">登入</button></form><p style="color:brown" v-if="notice">用户名密码不能为空!</p></div><script type="text/javascript">const HelloVueApp = {data(){return{form:{username: "",password: "",},notice: false}},methods:{loginBtn(){if(this.form.username == "" || this.form.password == ""){this.notice = true}else{this.notice = falseconsole.log(this.form)}}}} //挂载到html当中Vue.createApp(HelloVueApp).mount('#vue')</script></body></html>

v-for必须掌握,因为前后端的交互,肯定是有很多的列表,数组的数据。返回的是json,json里面是每个元素都是对象。这个对象你想用什么数据就拿这个数据。(遍历数组和对象)

v-if 显示或者隐藏,包括条件判断if  else。v-show只是做显示隐藏的。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_328254.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#,中国福利彩票《刮刮乐》的数学算法(01)——幸运123

彩票名称&#xff1a;幸运123面值&#xff1a;20元/张最高奖&#xff1a;100万&#xff08;人民币&#xff09;全套款式&#xff1a;2款玩法介绍&#xff1a; 一份好运&#xff0c;二倍快乐&#xff0c;三重惊喜。福彩刮刮乐新游戏“幸运123”&#xff0c;红色的票面上点缀着礼…

spring 详解二 IOC(Bean xml配置及DI)

配置列表 Xml配置 功能描述 <bean id"" class""></bean> Bean的id&#xff0c;配置id会转为Bean名称和不配就是全限定类名 <bean name"" ></bean> Bean的别名配置&#xff0c;存储在Factory的aliasMap中通过别名也…

Qt自定义控件之动画文本

文章目录 前言一、动画文本的效果二、具体实现定义动画对象设置动画时长的实现设置text函数实现绘制代码设置字体函数 三、高级部分操作代码总结 前言 在 Qt 中&#xff0c;自定义控件可以让我们实现丰富的用户界面效果和交互体验。其中&#xff0c;动画文本是一种常见的效果&…

使用 tail -f 实时观测服务器日志输出

在开发阶段, 有 console 端的输出, 总是可以方便实时地看到应用的日志. 可一旦应用部署到服务器上之后呢, 日志被输出到文件中, 在某些情景下需要不停地查看日志文件的输出以定位某些问题, 此时是否还能像开发那样实时查看日志呢? 答案是可以的! 这个命令就是 tail -f . tail…

Git使用详细教程

1. cmd面板的常用命令 clear&#xff1a;清屏cd 文件夹名称----进入文件夹cd … 进入上一级目录(两个点)dir 查看当前目录下的文件和文件夹(全拼:directory)Is 查看当前目录下的文件和文件夹touch 文件名----创建文件echo 内容 > 创建文件名----创建文件并写入内容rm 文件名…

Redis知识补充(1)

1)Redis本身就是在内存中进行存储数据的&#xff0c;那么为什么不直接定义一个变量来针对数据直接进行存储呢&#xff1f;因为Redis主要是应用于分布式系统&#xff0c;才能发挥它的最大威力&#xff0c;如果只是一个单机程序&#xff0c;通过变量存储数据的方式&#xff0c;是…

Kotlin~Composite组合模式

概念 能够帮助实现树状结构的模式。 主要特点 递归组合树状结构统一处理所有对象 角色介绍 Component: 组合接口Leaf: 叶子节点&#xff0c;无子节点Composite&#xff1a;枝节点&#xff0c;用来存储子部件 UML 代码实现 interface Organ {fun personCount():Int } cla…

[VUE学习】从头搭建权限管理系统前端-初始化

1.安装Node 2.安装Vue Cli vue的一个脚手架 npm install -g vue/cli 3.vue ui搭建vue项目 cmd 运行 vue ui 然后创建新项目 选择npm 选择配置 Babel 是编译的 Router 是路由 vuex 是状态保存的 Linter/fomatter 代码检测和格式化 创建完成 这个时候 代码在我们本地…

解决IDEA/WebStorm的Ctrl+Shift+F冲突失效

IDEA 的 CtrlShiftF 是全文或全项目搜索搜索快捷键&#xff0c;非常好用。 当这个快捷键偶而会失效时&#xff0c;基本可以确定是快捷键冲突了。 检查所有运行的软件的快捷键&#xff0c;若有设置为CtrlShiftF的则改掉。特别是输入法会占用较多的快捷键。 例如我这里的搜过输…

Skywalking高级使用

Skywalking高级使用 RPC调用监控Mysql调用监控Skywalking常用插件获取追踪ID过滤指定的端点告警功能Skywalking原理Open Tracing介绍 RPC调用监控 Skywalking(6.5.0)支持的RPC框架有以下几种&#xff1a; (1) Dubbo 2.5.4 -> 2.6.0 (2) Dubbox 2.8.4 (3) Apache Dubbo 2.7.…

Git gui教程---第四篇 Git gui的使用 添加文件,并提交

添加文件&#xff0c;并提交 新建一个txt文件点击扫描重新扫描&#xff0c;未缓存改动多了我们刚刚新建的文件。 点击缓存改动&#xff0c;文件位置变换。 如果缓存选错&#xff0c;想撤销&#xff0c;在菜单栏选择“提交”&#xff0c;“从本次提交撤销”&#xff0c;文件变更…

实例解释在lingo中使用集合模型

某部门有三个生产同一产品的工厂&#xff08;产地&#xff09;&#xff0c;生产的产品运往四个销售点&#xff08;销地&#xff09;出售&#xff0c;各个工厂的生产量、各销地的销量&#xff08;单位&#xff1a;吨&#xff09;、从各个工厂到各个销售点的单位运价&#xff08;…

动态规划之62 不同路径(第4道)

题目&#xff1a; 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish” &#xff09;。 问总共有多少条不同的路径&…

debian to go

可以使用虚拟机操作&#xff0c;在运行镜像到安装步骤时选择 u盘 不需要手动分 /boot 分区之类的&#xff0c;“Automaction”自动分区就行&#xff0c;全安装到根目录。boot load 安装到 /dev/sdb&#xff0c;也就是硬盘本身 推荐使用gpt分区表&#xff0c;建议拿不用的盘练…

js实现图片压缩

创建一个type"file"的input标签&#xff0c;用于文件上传。 <input type"file" name"" id"upload" value"" />通过js实现图片压缩 window.onload function () {const upload document.getElementById("upload…

范德波尔方程可视化

Van der Pol方程如下所示 d x d t y d y d t − x ( 1 − x 2 ) y \begin{equation} \begin{aligned} \frac{dx}{dt} & y \\ \frac{dy}{dt} & -x(1-x^2)y \end{aligned} \end{equation} dtdx​dtdy​​y−x(1−x2)y​​​ 相应的程序如下 为了观看长期趋势&…

【LeetCode每日一题合集】2023.7.3-2023.7.9

文章目录 2023.7.3——445. 两数相加 II&#xff08;大数相加/高精度加法&#xff09;2023.7.4——2679. 矩阵中的和2023.7.5——2600. K 件物品的最大和&#xff08;贪心&#xff09;代码1——贪心模拟代码2——Java一行 2023.7.6——2178. 拆分成最多数目的正偶数之和&#x…

STM32的ADC模式及其应用例程介绍

STM32的ADC模式及其应用例程介绍 &#x1f4cd;ST官方相关应用笔记介绍资料&#xff1a;https://www.stmcu.com.cn/Designresource/detail/application_note/705947&#x1f4cc;相关例程资源包&#xff1a;STSW-STM32028&#xff1a;https://www.st.com/zh/embedded-software/…

MySQL数据库对象与数据备份和还原详解

目录 一、视图 1. 什么是视图 2. 视图与数据表的区别 3. 视图的优点 4. 创建视图 二、索引 1. 什么是索引 2. 为什么要使用索引 3. 索引优缺点 4. 何时不使用索引 5. 索引何时失效 6. 索引分类 6.1 普通索引 6.2 唯一索引 6.3 主键索引 6.4 组合索引 三、数据的…

Integration Objects OPC 所有产品Crack

OPC产品 OPC UA 升级到 OPC UA 以提高互操作性和安全性。 OPC 隧道 无需 DCOM 即可实现安全可靠的连接。 OPC 数据归档 将 OPC 数据存储到标准数据库或 CSV 文件中。 OPC 服务器 将任何通信协议转换为OPC标准。 OPC 客户端 读取、写入和传输您的 OPC 数据。 OPC 服务器工具…