当前位置: 首页 > news >正文

【Vue.js基础】

  • Vue.js 快速上手指南
    • 1. Vue.js 简介
      • 1.1 Vue.js 的特点
    • 2. 学习 Vue 2 还是 Vue 3?
      • 2.1 Vue.js 下载
      • 2.2 在页面引入 Vue.js
    • 3. Vue.js 入门
      • 3.1 入门程序 - Hello World
      • 3.2 Class 与 Style 绑定
        • 3.2.1 Class 绑定
        • 3.2.2 Style 绑定
      • 3.3 v-text 和 v-html
      • 3.4 v-if 和 v-for
      • 3.5 v-model
      • 3.6 组件
      • 3.7 生命周期钩子
    • 4. 结论

Vue.js 快速上手指南

Vue.js 是一个轻量级、易于上手的前端框架,它提供了一套简洁的模板语法和响应式数据绑定机制,使得开发复杂的用户界面变得简单而高效。本文将带你快速了解 Vue.js 的基本概念、特性,并提供一些实用的代码示例。

1. Vue.js 简介

Vue.js(读音 /vjuː/,类似于 “view”)是一个用于构建用户界面的渐进式框架。它的核心库只关注视图层,易于上手,并且可以与第三方库或现有项目整合。Vue.js 的设计哲学是自底向上逐层应用,使得开发者可以根据项目需求灵活地选择使用它的哪一部分。

1.1 Vue.js 的特点

  • 简洁:HTML 模板 + JSON 数据,再创建一个 Vue 实例,就这么简单。
  • 数据驱动:自动追踪依赖的模板表达式和计算属性。
  • 组件化:用解耦、可复用的组件来构造界面。
  • 轻量:压缩后大约 33.46KB,无依赖。
  • 快速:精确有效的异步批量 DOM 更新。
  • 模块友好:通过 NPM 或 Yarn 安装,无缝融入你的工作流。

2. 学习 Vue 2 还是 Vue 3?

Vue 3 于 2020 年 9 月 19 日发布正式版,命名为“One Piece”。Vue 3 带来了更好的性能、更小的包体积、更好的 TypeScript 集成以及更优秀的 API 设计。从 2022 年 2 月 7 日起,Vue 3 成为默认安装版本。因此,现在学习 Vue 3 是非常合适的。

2.1 Vue.js 下载

你可以通过访问 Vue.js 的官方网站 Vue.js 来下载 Vue.js。下载后,你可以在页面中引入 Vue.js 文件。

2.2 在页面引入 Vue.js

<!DOCTYPE html>
<html>
<head><title>Vue.js 示例</title><script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
</head>
<body><div id="app">{{ message }}</div><script>var app = new Vue({el: '#app',data: {message: 'Hello Vue!'}});</script>
</body>
</html>

3. Vue.js 入门

3.1 入门程序 - Hello World

<!DOCTYPE html>
<html>
<head><title>Vue.js Hello World</title><script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
</head>
<body><div id="app">{{ message }}</div><script>var app = new Vue({el: '#app',data: {message: 'Hello World!'}});</script>
</body>
</html>

3.2 Class 与 Style 绑定

Vue.js 提供了 v-bind:classv-bind:style 指令来动态绑定 class 和 style。

3.2.1 Class 绑定
<!DOCTYPE html>
<html>
<head><title>Vue.js Class 绑定</title><script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
</head>
<body><div id="app"><div :class="{ active: isActive, 'text-danger': hasError }"></div></div><script>var app = new Vue({el: '#app',data: {isActive: true,hasError: false}});</script>
</body>
</html>
3.2.2 Style 绑定
<!DOCTYPE html>
<html>
<head><title>Vue.js Style 绑定</title><script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
</head>
<body><div id="app"><div :style="styleObject"></div></div><script>var app = new Vue({el: '#app',data: {styleObject: {color: 'red',fontSize: '20px'}}});</script>
</body>
</html>

3.3 v-text 和 v-html

  • v-text 用于更新元素的 textContent
  • v-html 用于输出真正的 HTML。
<!DOCTYPE html>
<html>
<head><title>Vue.js v-text 和 v-html</title><script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
</head>
<body><div id="app"><p v-text="text"></p><p v-html="html"></p></div><script>var app = new Vue({el: '#app',data: {text: 'This is a text.',html: '<strong>This is HTML.</strong>'}});</script>
</body>
</html>

3.4 v-if 和 v-for

  • v-if 用于条件渲染。
  • v-for 用于列表渲染。
<!DOCTYPE html>
<html>
<head><title>Vue.js v-if 和 v-for</title><script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
</head>
<body><div id="app"><p v-if="seen">Now you see me.</p><ul><li v-for="item in items" :key="item.id">{{ item.text }}</li></ul></div><script>var app = new Vue({el: '#app',data: {seen: true,items: [{ id: 1, text: 'Item 1' },{ id: 2, text: 'Item 2' }]}});</script>
</body>
</html>

3.5 v-model

v-model 用于在表单 inputtextareaselect 元素上创建双向数据绑定。

<!DOCTYPE html>
<html>
<head><title>Vue.js v-model</title><script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
</head>
<body><div id="app"><input v-model="message" placeholder="Edit me"><p>Message is: {{ message }}</p></div><script>var app = new Vue({el: '#app',data: {message: ''}});</script>
</body>
</html>

3.6 组件

Vue.js 支持组件化开发,可以创建可复用的组件。

<!DOCTYPE html>
<html>
<head><title>Vue.js 组件</title><script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
</head>
<body><div id="app"><person-component></person-component></div><script>Vue.component('person-component', {template: '<div>Person Component</div>'});var app = new Vue({el: '#app'});</script>
</body>
</html>

3.7 生命周期钩子

Vue 实例在创建过程中会经历多个阶段:创建、编译、挂载、更新和销毁。每个阶段都有相应的生命周期钩子。

<!DOCTYPE html>
<html>
<head><title>Vue.js 生命周期钩子</title><script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
</head>
<body><div id="app"><p>{{ message }}</p></div><script>var app = new Vue({el: '#app',data: {message: 'Hello Vue!'},beforeCreate: function () {console.log('Before create');},created: function () {console.log('Created');},beforeMount: function () {console.log('Before mount');},mounted: function () {console.log('Mounted');},beforeUpdate: function () {console.log('Before update');},updated: function () {console.log('Updated');},beforeDestroy: function () {console.log('Before destroy');},destroyed: function () {console.log('Destroyed');}});</script>
</body>
</html>

4. 结论

提供了简洁的语法和高效的数据绑定机制,使得开发复杂的用户界面变得简单而高效。Vue.js 是一个现代化的前端框架,它通过简洁的设计和强大的功能,极大地简化了用户界面的开发过程。Vue.js 的核心优势在于其渐进式架构,使得开发者可以轻松地将其集成到现有的项目中,或者用于构建全新的单页应用。

相关文章:

  • Maven笔记(一):基础使用【记录】
  • pyproject.toml文件相关
  • 【第二轮通知】第二届网络、通信与智能计算国际会议(NCIC 2024)
  • 三维扫描 | 解锁低成本、高效率的工作秘籍
  • 2024.9.26 作业 +思维导图
  • 【DP解密多重背包问题】:优化策略与实现
  • 零基础入门AI:一键本地运行各种开源大语言模型 - Ollama
  • [大语言模型-论文精读] ACL2024-长尾知识在检索增强型大型语言模型中的作用
  • el-table+el-form实现表单校验和解决不垂直居中导致的问题
  • IT技术的发展及应用
  • 在Windows上安装Git
  • Go conc库学习与使用
  • HP 电脑 - 管理电源选项 (Windows 10)
  • 电信光猫破解记录
  • 代号ORION:Meta的AR眼镜揭示黑科技的潜力
  • SegmentFault for Android 3.0 发布
  • 【译】理解JavaScript:new 关键字
  • 2017 年终总结 —— 在路上
  • Android组件 - 收藏集 - 掘金
  • codis proxy处理流程
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • Javascripit类型转换比较那点事儿,双等号(==)
  • JavaScript学习总结——原型
  • magento 货币换算
  • npx命令介绍
  • SpiderData 2019年2月25日 DApp数据排行榜
  • Swift 中的尾递归和蹦床
  • 给Prometheus造假数据的方法
  • 给第三方使用接口的 URL 签名实现
  • 码农张的Bug人生 - 见面之礼
  • 前端相关框架总和
  • 区块链将重新定义世界
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • nb
  • ​ArcGIS Pro 如何批量删除字段
  • ​香农与信息论三大定律
  • ​业务双活的数据切换思路设计(下)
  • (C语言)逆序输出字符串
  • (day 12)JavaScript学习笔记(数组3)
  • (PySpark)RDD实验实战——求商品销量排行
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (第61天)多租户架构(CDB/PDB)
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (回溯) LeetCode 131. 分割回文串
  • (离散数学)逻辑连接词
  • (利用IDEA+Maven)定制属于自己的jar包
  • (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  • (微服务实战)预付卡平台支付交易系统卡充值业务流程设计
  • (一)项目实践-利用Appdesigner制作目标跟踪仿真软件
  • (已解决)Bootstrap精美弹出框模态框modal,实现js向modal传递数据
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • (转载)深入super,看Python如何解决钻石继承难题
  • (自用)gtest单元测试
  • .Net 6.0 处理跨域的方式