懂一点前端—ue快速入门腾讯云开发者社区

Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架,是当下很火的一个 JavaScript MVVM 库,是以 数据驱动和组件化 的思想构建的。

当创建了 ViewModel 后,双向绑定是如何达成的呢?

首先,我们将上图中的 DOM Listeners 和 Data Bindings 看作两个工具,它们是实现双向绑定的关键。

在这里我们需要稍微注意一下前端 库(Library) 和 框架(Framework) 的区别,它们的本质都是某人编写的,用于解决常见问题的 可复用代码 的集合。

比如,你有一个处理字符串的程序,你为了保持代码的 DRY (Don't Repeat Yourself),你编写了如下可复用的功能代码:

恭喜你,你创建了一个 JavaScript 库!

如果我们用 「构建房子」 来类比 「构建应用」 的话,那么 使用库 就像是 去宜家购物 一样,我已经有了一个家,现在我需要挑选自己喜欢的一些家具,以达到我自己满意的状态,这一切 都在我的控制范围之内;而 使用框架 就会像是已经有了一个 清装房,在已经规划好的蓝图和选择之中,我们的一些想法会显得十分地有限。

更加详细的解释如下:

说实话,我个人非常喜欢 Vue。在我大学刚尝试学习 HTML + CSS + JavaScript 和 Bootstrap 融合之后,我就接触了 Vue,它对我来说这样的「前端小白」来说,几乎没有什么开发的门槛,很平滑地就得以过渡到 Vue 的使用中去。

B 站翻译版本截图

Vue 从一开始的定位就是尽可能的降低前端开发的门槛,让更多的人能够更快地上手开发。———— 尤雨溪

可以看到几乎没有多余的部分,只是在创建 Vue 实例时,把 id 为 app 的对象 (此处为一个 div) 绑定到了 Vue 实例中而已。

由于 Vue 是国人编写的,所以在官网中有完整的中文文档可供开发者参考,并且借由尤大大出色的文笔,非常地清晰易懂,相信看过的朋友会和我有一样的感受:

将 message 绑定到文本框,当更改文本框的值的时候, <p>{{ message }}</p> 中的内容也会被更新:

反过来如果我们更改 message 的值的话,文本框的值也会被更新,我们可以在控制台中尝试一下:

说了这么多,无非是希望大家能停下来想想所谓的 ”A 技术比 B 技术牛逼“ 背后到底是在争些什么,我们使用这些技术的初衷又是什么。很多时候你说这方面,他说那方面,鸡同鸭讲,即使说到一起去,也往往缺乏对等的信息量或者基础共识,只是各自表达主观看法,最后变成两个阵营各自抱团取暖... 说到底,就算你证明了 A 比 B 牛逼,也不意味着你或者你的项目就牛逼了... 比起争这个,不如多想想怎么让自己变得更牛逼吧。—————— 尤雨溪

上面我们已经实际体验了一个 Vue 的指令 v-model 了,在 Vue 中,指令都带有 v- 前缀,以表示它们是 Vue 提供的特殊的 attribute,它们会在渲染 DOM 时进行特殊的响应式行为。

Vue 内置了一些常用的指令,接下来我们将依次来介绍:

v-if 指令用于条件性地渲染一块内容。这块内容只会在指令的表达式返回 truthy 值的时候被渲染。例如:(vue-tutorial/v-if-demo)

页面会正确的显示「现在你看到我了!」这几个字。

你也可以使用 v-else 来添加一个 "else 块" 来表达条件不满足时应该渲染的模块:

此时条件 seen 不满足,页面就会显示「Oh no!」的字样。

这是 2.1.0 版本新增的指令,充当 v-if 的 "else-if 块",可以用来连续判断条件:

类似于 v-else,v-else-if 也必须紧跟在带 v-if 或者 v-else-if 的元素之后。

另一个用于根据条件展示元素的选项是 v-show 指令。用法大致一样:

不同的是带有 v-show 的元素始终会被渲染并保留在 DOM 中。v-show 只是简单地切换元素的 CSS 属性 display (条件不满足则把元素 display 属性设置为 none),而 v-if 则在条件不满足时直接不渲染出对象。

v-if 是“真正”的条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建。

v-if 也是 惰性 的:如果在初始渲染时条件为假,则什么也不做——直到条件第一次变为真时,才会开始渲染条件块。

相比之下,v-show 就简单得多——不管初始条件是什么,元素总是会被渲染,并且只是简单地基于 CSS 进行切换。

一般来说,v-if 有更高的切换开销,而 v-show 有更高的初始渲染开销。因此,如果需要非常频繁地切换,则使用 v-show 较好;如果在运行时条件很少改变,则使用 v-if 较好。

我们可以用 v-for 指令基于一个数组来渲染一个列表。v-for 指令需要使用 item in items 形式的特殊语法,其中 items 是源数据数组,而 item 则是被迭代的数组元素的别名。

结果:

我们可以传给 v-bind:class 一个对象,以动态地切换 class:(也可以用缩写 : 来替代 v-bind 指令)

上面的语法表示 active 这个 class 存在与否将取决于数据属性 isActive 的 truthiness。

你可以在对象中传入更多属性来动态切换多个 class。此外,v-bind:class 指令也可以与普通的 class 属性共存。当有如下模板:

和如下 data:

结果渲染为:

当 isActive 或者 hasError 变化时,class 列表将相应地更新。例如,如果 hasError 的值为 true,class 列表将变为 "static active text-danger"。

可以用 v-on 指令监听 DOM 事件,并在触发时运行一些 JavaScript 代码。(也可以用缩写 @ 来替代 v-on 指令)

示例:

结果:

image

上面我们了解了一些基本的指令了,接下来我们实际动动手,来搭建一个简单的 TodoList demo 小程序。

TodoList 想必大家都很熟悉,使用来记录我们接下来要做的一些事情的程序,最基本的功能有增加和删除:

很简单,可以看出我们只需要一个输入框 (用来记录将要保存的数据),一个按钮 (用来添加数据),和一个集合 (用来保存数据) 就差不多可以了,上手!

先来创建好我们需要的数据 data:

这里多定义了 id 属性是为了方便我们的删除操作。

没有任何布局,就直接定义好我们所需要的组件就好了:

没有任何的特别,只是里面包含了两个我们 未定义 的方法:addItem 和 removeItem 而已。

Vue 中的方法需要定义在 Vue 实例的 methods 关键字下面:

这里数组的更新需要用到 push,另外删除时我们使用了一个 lambda 表达式来完成,删除时传入了一个要删除元素的 id,然后从数组中挑选出所有 不等于 这个 id 的元素重新赋值给原数组,这样就相当于是删除了元素了。

本文涉及的所有代码都上传到了【More Than Java】项目中。(地址下方)

THE END
0.Vue.js入门及技术指南Vue.js入门及技术指南 本文介绍Vue.js,一个用于构建用户界面的渐进式前端框架。Vue关注视图层,支持自底向上增量开发,拥有独特的模板语法和功能,如计算函数、事件监听等。文章涵盖Vue的安装、示例应用、语法要点及生命周期、组件通信和渲染原理。 初识Vue.jsjvzquC41dnuh0lxfp0tfv8~cpajl1jwvkerf1mjvckrt1:5635;28:
1.Vue简介及基本使用教程vue.js​ Vue.js就是一套轻量级的 MVVM 框架,本文通过实例代码给大家介绍Vue 简介及基本使用教程,感兴趣的朋友跟随小编一起看看吧+ 目录 GPT4.0+Midjourney绘画+国内大模型 会员永久免费使用!【 如果你想靠AI翻身,你先需要一个靠谱的工具!】 概述 前端技术的发展 从静态走向动态 早期的 HTML 作为静态文件,即使只有jvzquC41yy}/lk:30pku1sfxcuiskyy157756Aovh0nuo
2.前端Vue知识点梳理:从基础到进阶的完整指南Vue.js前端框架教程:从基础语法到进阶技巧全解析。涵盖响应式数据绑定、组件化开发、Vuex/Pinia状态管理、性能优化及Vite工程化配置。掌握v-bind/v-model指令、计算属性、虚拟滚动等核心功能,学习Element UI/Vant等UI库集成。适合开发者系统学习Vue2/Vue3开发技能。jvzquC41enuvf7ygpekov7hqo0io1mjxgnuqg{4ctvodnn447:9:4;
3.Vue.js互动教程 示例 快速上手 术语表 错误码参照表 Vue 2 文档 从Vue 2 迁移 关于 常见问题 团队 版本发布 社区指南 行为规范 隐私政策 纪录片 资源 合作伙伴 主题 UI 组件 插件合集 证书 找工作 T-Shirt 商店 官方库 Vue Router Pinia 工具链指南 视频课程 Vue Mastery Vue School 帮助 Discord 聊天室 GitHub 论坛 DEV Community 动态 博客 Twitter 活动 新闻简报jvzquC41ep4wwnou0qxh1
4.vue3技术简易入门剖析(一)vue3技术简易入门剖析(一) vue3 入门 本章内容 vue3简介 vue3项目构建工具vite vue3组合式API vue3响应式原理–Proxy+Object.defineProperty() computed计算属性 watch侦听器 函数的使用 新增内置组件 一、vue3 1.1 简介 2020年9月18日发布,3.0版本 代号 ‘one piece’。jvzquC41fg|fnxugt0gmk‚zp0eun1jwvkerf1:954973
5.前端开发:Vue框架与前端部署|初学教程  如下图所示,前端资源被浏览器解析,但是前端页面上缺少数据,前端可以通过Ajax技术,向后台服务器发起请求,后台服务器接受到前端的请求,从数据库中获取前端需要的资源,然后响应给前端,前端再通过 vue技术,可以将数据展示到页面上,这样用户就能看到完整的页面了。 jvzquC41ej{ywnokcqiigwl0eqs04mk4gh79eA3jvor
6.开发者必须掌握的Vue.js编程技术入门教程及基础知识随着前端的飞速发展,现代化的开发工具和技术日新月异。在这个过程中,学习如何使用流行的javascript框架对于初学者和进阶开发者同样重要。以下是一篇详细介绍Vue.js编程基本概念的教程,将助你在入门的道路上迈向更先进的vue框架。 一、Vue.js概述 Vue是一款基于`Responsive Web Platforms`的开源、易于学习和渐进式的前端jvzquC41pg}t0:<3954dqv4|1mlc1ltpvgtu1:725463686977822@:0ujznn
7.Vue.js完全指南:从入门到精通Vue.js 完全指南:从入门到精通 1.Vue.js简介 1.1 什么是 Vue.js? Vue.js(通常简称为 Vue)是一个用于构建用户界面的渐进式 JavaScript 框架。所谓"渐进式",意味着 Vue 的设计是由浅入深的,你可以根据自己的需求选择使用它的一部分或全部功能。 Vue 最初由尤雨溪(Evan You)在 2014 年创建,其设计灵感部分jvzquC41dnuh0lxfp0tfv8|gkzooa>6262:8;8ftvkimg8igvcomu86687897B:
8.Vue.js全面学习指南:从入门到精通的系统化学习路径一、Vue 基础入门 (一)Vue 简介 Vue.js是一个用于构建用户界面的渐进式 JavaScript 框架。它易于上手,同时也能满足复杂应用的需求。Vue 的核心库只关注视图层,这使得它非常容易学习,同时也便于与现有项目集成。Vue 的声明式和组件化编程模型使得代码更加清晰易读,便于维护和扩展。 jvzquC41dnuh0lxfp0tfv8rpi3841jwvkerf1mjvckrt1:9874952B
9.一篇超完整的Vue新手入门指导教程vue.js一篇超完整的Vue新手入门指导教程更新时间:2020年11月18日 15:07:18 作者:kiba518 这篇文章主要给大家介绍了关于Vue入门的相关资料,是一篇超完整的Vue入门教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧+ 目录 GPT4.0+Midjourney绘画+国内大模型 jvzquC41yy}/lk:30pku1jwvkerf1;5225:/j}r
10.Vue.js是什么?前端开发入门必知的技术解析Vue采用组件化架构 让开发者可以将界面拆分为独立可复用的模块 极大提升了开发效率和代码维护性 它的响应式数据绑定机制 能自动同步数据与视图 减少手动操作DOM的繁琐过程 无论是小型项目还是大型单页应用 SPA Vue都能灵活应对 因此被广泛应用于电商 后台管理系统和移动端H5开发中 jvzquC41lkgoiqz0vcuccx3eqo5hwjsinqibn8997;>`:<:h:5<4:jh2;9?97<647g7:;n;g4f:6
11.Vue基础知识快速入门教程vue.js这篇文章主要介绍了Vue基础知识快速入门教程,我们可以先学会用,使用一段时间之后,回头来熟悉一下Vue框架以及它的特点,需要的朋友可以参考下+ 目录 GPT4.0+Midjourney绘画+国内大模型 会员永久免费使用!【 如果你想靠AI翻身,你先需要一个靠谱的工具!】 一、Vue程序初体验 可以先不去了解Vue框架的发展历史、Vue框架jvzquC41yy}/lk:30pku1jwvkerf1;=5279/j}r
12.Vue.js开发入门必读:框架核心概念解析Vue.js能显著减少DOM操作 提升开发效率 同时支持虚拟DOM和响应式系统 让页面性能更流畅 其组件复用机制也让团队协作更顺畅 尤其适合中大型项目的持续迭代 /p p 在实际项目开发中 一本系统讲解Vue.js的书能少走很多弯路 Vue.js前端框架技术与实战 微课视频版 jvzquC41lkgoiqz0vcuccx3eqo5hwjsinqibn8997;>`6og32dk53?if;4j13::54d?89j58fe62
13.个人技术博客:VUE:0基础入门炽风个人技术博客:VUE:0基础入门 本博客面向有一定HTML,JS基础,但对VUE没什么了解的初学者 参考教程:VUE官方教程,菜鸟教程:VUE VUE.js简介 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于jvzquC41yy}/ewgnqiy/exr1nkttjnsi36961y4353992::0jvsm
14.Vue.js权威指南是什么?前端开发必读解析Vue.js权威指南通常指系统化讲解Vue框架核心技术的书籍或教程,涵盖数据绑定、组件化、路由与状态管理等内容,帮助开发者掌握构建现代化Web应用的能力。作为渐进式JavaScript框架,Vue.js以轻量、易上手著称,广泛应用于企业级前端项目中,是当前主流的三大前端框架之一。✨ 最近翻到这本《Vue.js前端开发实战 慕课版》,jvzquC41lkgoiqz0vcuccx3eqo5hwjsinqibn899976`3n6fg7kd;B>;28h4:?
15.vue新手入门指导,一篇让你学会vue技术栈,本人初学时候的文档今天整理文档突然发现了一份md文档,打开一看 瞬间想起当年学习vue的艰难路,没人指导全靠自己蒙,下面就是md文档内容,需要的小伙伴可以打开个在线的md编译器看一看,我相信不管是新人还是老人 入门总是可以的(这只是初学时候做的笔记,如果有哪里写错了还望联系我修改,jvzquC41yy}/ewgnqiy/exr1lkt{jns|qpm0r8>;8471;7mvon
16.vue快速入门基础知识教程vue.jsvue快速入门基础知识教程更新时间:2023年01月27日 15:10:21 投稿:yin VUE是一套前端框架,免除了原生JavaScript中的DOM操作,简化书写。VUE基于MVVM(Model-View_ViewModel)思想,实现数据双向绑定。Vue的核心库只关注图层.响应式数据绑定和组件化开发是其两大特点。jvzquC41yy}/lk:30pku1jwvkerf1;<565:/j}r
17.vue入门教程(一)「建议收藏」腾讯云开发者社区Vue入门教程中有哪些关键概念需要掌握? 如何开始学习Vue的基础语法? Vue模板语法是如何使用的? 大家好,又见面了,我是你们的朋友全栈君。 1. vue简介 1.1 vue是什么 官网:https://cn.vuejs.org/ Vue 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的jvzquC41enuvf7ygpekov7hqo1jfxnqqrgx0c{ykenk049>6447
18.Vue入门,基础部分看这一篇就够了vue入门基础Vue入门,基础部分看这一篇就够了 本文详细介绍Vue.js的基础知识,包括核心概念、安装方法、指令使用、条件渲染、事件处理等内容,并探讨Vue组件化开发的优势。 CSDN话题挑战赛第2期 参赛话题:学习笔记 一.写在开头 1.单词部分 学习Vue之前我们先解决单词问题,知道每个单词的意思,以便更好地学习。jvzquC41dnuh0lxfp0tfv8r2a7;85=5521gsvrhng1jfvjnnu173997;89?
19.vue基础教程总结篇,用最短的时间入门vuevue使用教程vue基础教程总结篇,用最短的时间入门vue 本文围绕Vue展开,介绍了Vue过渡、路由、Ajax使用等开发知识,还提及前端vue在可视化大屏领域的实践。此外,解答了一些vue实践问题,如iframe表单免密登录等。最后分享了《2024年Web前端开发全套学习资料》,并邀请大家加入交流圈子。jvzquC41dnuh0lxfp0tfv8r2a8929=:4;1gsvrhng1jfvjnnu1749?;43;6