Vue学习——【第二弹】

news/2024/12/23 4:40:02/

前言

上一篇文章 Vue学习——【第一弹】 中我们学习了Vue的相关特点及语法,这篇文章接着通过浏览器中的Vue开发者工具扩展来进一步了解Vue的相关工作机制。

Vue的扩展

我们打开Vue的官方文档,点击导航栏中的生态系统,点击Devtools
在这里插入图片描述
接着我们就进入了github中,点击右栏的链接:

在这里插入图片描述

之后跳转到一个新的页面,点击install now

在这里插入图片描述
然后就能看到多种浏览器分别对应的Vue扩展,根据自己的需要做出选择:

在这里插入图片描述

国内的伙伴可能无法打开谷歌浏览器的扩展,需要在谷歌浏览器安装Vue扩展的伙伴可以自取:

点击链接
提取码:vart

我们只需要打开谷歌浏览器的设置中的扩展程序,然后打开右上角的开发者模式,将文件夹中的 .crx 拖拽过去即可。
在这里插入图片描述

Vue的数据绑定

这里介绍下 v-bind(单向数据绑定)v-model(双向数据绑定)

v-bind

v-bind是Vue中的指令之一,用于将数据绑定到元素属性上。

v-bind的主要作用是动态地设置HTML元素的属性,并与Vue实例的数据绑定起来。通过v-bind指令,我们可以将Vue实例中的数据动态地绑定到HTML元素的属性上。这样,当Vue实例中的数据发生变化时,对应的HTML元素属性也会自动更新。

<div id="demo1"><!-- 这是第一种写法 -->这是单向数据绑定 v-bind <input type="text" v-bind:value="name"><br /><!-- 这是简写写法 -->这是单向数据绑定 v-bind的简写 <input type="text" :value="index.name"></div><script type="text/javascript" src="../JS/vue.js"></script><script type="text/javascript">new Vue({el: '#demo1',data: {name: 'hello Vue',index: {name: '你好 Vue'}}})</script>

但是为什么说v-bind是单向数据绑定呢?我们通过浏览器上的Vue扩展来看一下。
运行我们写好的html文件,然后在浏览器页面上右击检查,然后点击vue:

在这里插入图片描述
尝试一下修改data中的name或者是index中的name的值
在这里插入图片描述在这里插入图片描述
我们看一下对应的数据是否发生改变:

在这里插入图片描述我们看到当Vue实例中的数据发生变化时,对应的HTML元素属性也会自动更新。
如果是我们更改文本框中的内容,Vue实例中对应的数据也会自动发生变化吗?

在这里插入图片描述
从这两个例子呈现的结果我们也可以看出 :使用单向绑定时,数据只能从data流向页面,但是无法从页面流向data(只有data–>DOM,没有DOM–>data

在上一篇文章中还介绍了Vue中的插值语法,其实插值语法也属于单向绑定,它可以将数据从组件的JavaScript实例绑定到视图中,但不能将视图中的值绑定回JavaScript实例。

同样是举例说明:

修改之前
在这里插入图片描述修改之后:

在这里插入图片描述
关于插值语法为什么是单向数据绑定,其实也很容易理解:因为这样就可以保证组件的数据状态只能在组件内部被修改,避免了数据污染和不可预测性的问题。而如果需要实现双向数据绑定,可以使用v-model指令

v-model

v-model是Vue中的双向数据绑定指令,Vue中的双向数据绑定是指在View层(即用户界面)中输入的数据可以自动同步到Model层中的数据,同时Model层中数据的变化也可以自动同步到View层中。这种实时的数据同步,让Vue的开发变得更加简单和高效。

举例:

<div id="demo2">这是双向数据绑定  v-model <input type="text" v-model:value="name"><br/>这是双向数据绑定v-model的简写 <input type="text" v-model="index.name"></div><script type="text/javascript" src="../JS/vue.js"></script><script type="text/javascript">new Vue({el:'#demo2',data:{name:'这是个文本框',index:{name:'这也是个文本框'}}})</script>

效果:

在这里插入图片描述
修改data中的数据:
在这里插入图片描述
修改DOM中文本框的内容:
在这里插入图片描述
通过这两个例子我们应该很直观的看到了v-model的双向数据绑定:
既可以实现从data流向DOM,也可以从DOM流向data(data——>DOM DOM——>data)

但是当我们使用v-model进行双向数据绑定时,需要注意:

v-model只可应用于表单元素(即具有value值得元素)中,否则会报错

在这里插入图片描述

在这里插入图片描述

小结

通过上述案例,我们看到双向数据绑定似乎更高效一些,那么为什么单向数据绑定还在使用呢?
Vue中的双向数据绑定固然更加高效,因为它能够同时更新组件和数据模型中的数据。然而,在一些特定情况下,单向数据绑定也有它的优势

首先,单向数据绑定在某些场景下会更易于理解和维护。
其次,单向数据绑定可以在性能和内存方面更高效。
最后,单向数据绑定更加适合与其他框架或库进行集成。

因此,选择使用单向还是双向数据绑定取决于特定的应用场景和要解决的问题。在某些情况下,使用单向数据绑定反而会更加有效。

最后

以上就是本篇文章介绍的内容了,后续还会有学习分享,经验总结。
初学乍道,如有不足,欢迎指正!

参考文献

Vue官方文档
Vue技能树
B站视频讲解


http://www.ppmy.cn/news/44951.html

相关文章

第02章_变量与运算符

第02章_变量与运算符 讲师&#xff1a;尚硅谷-宋红康&#xff08;江湖人称&#xff1a;康师傅&#xff09; 官网&#xff1a;http://www.atguigu.com 本章专题与脉络 1. 关键字&#xff08;keyword&#xff09; 定义&#xff1a;被Java语言赋予了特殊含义&#xff0c;用做专门…

四十六、docker-compose部署

一个项目肯定包含多个容器&#xff0c;每个容器都手动单独部署肯定费时费力。docker-compose可以通过脚本来批量构建镜像和启动容器&#xff0c;快速的部署项目。 使用docker-compose部署主要是编写docker-compose.yml脚本。 一、项目结构 不论是Dockerfile还是docker-compo…

【java】eclipse

eclipse重置窗口布局https://jingyan.baidu.com/article/0bc808fc55a2bc5ad585b923.html 快速查找文件 CtrlShiftR 自定义ctrel P 查找函数 Ctrl O eclipse 如何自定义快捷键&#xff1f;eclipse快捷键大全https://www.xitongbuluo.com/jiaocheng/74408.html F5键与F6键均…

rust闭包(Closure)

闭包(Closure) 闭包在现代化的编程语言中普遍存在。闭包是一种匿名函数&#xff0c;它可以赋值给变量也可以作为参数传递给其它函数&#xff0c;不同于函数的是&#xff0c;它允许捕获调用者作用域中的值。Rust 闭包在形式上借鉴了 Smalltalk 和 Ruby 语言&#xff0c;与函数最…

【前端之旅】Vue入门笔记

一名软件工程专业学生的前端之旅,记录自己对三件套(HTML、CSS、JavaScript)、Jquery、Ajax、Axios、Bootstrap、Node.js、Vue、小程序开发(Uniapp)以及各种UI组件库、前端框架的学习。 【前端之旅】Web基础与开发工具 【前端之旅】手把手教你安装VS Code并附上超实用插件…

nvm安装及使用

nvm是一个node的版本管理工具。 nvm-windows下载 1、安装 首先要卸载电脑上已经有的node版本&#xff0c;注意需要卸载干净&#xff0c;再安装nvm 一路 next 安装就可以了。 安装成功后&#xff0c;以管理员身份运行&#xff08;很重要&#xff01;&#xff01;&#xff01;…

安装elasticsearch

1.部署单点es 因为我们还需要部署kibana容器&#xff0c;因此需要让es和kibana容器互联。这里先创建一个网络&#xff1a; docker network create es-net运行docker命令&#xff0c;部署单点es&#xff1a; docker run -d \--name es \-e "ES_JAVA_OPTS-Xms512m -Xmx51…

排序算法(二)

三、桶排序 先看定义&#xff1a; 桶排序会进行两次排序&#xff0c;一次将所有元素分配到不同的桶中&#xff0c;一次针对每个桶排序或再次排序所有元素。 练习题&#xff1a; 1&#xff09; 力扣https://leetcode.cn/problems/top-k-frequent-elements/这道题就是非常典型…