Vue.js 基础入门:从零开始构建你的第一个 Vue 应用

server/2025/3/14 16:08:18/

Vue.js 是一个轻量级、易上手的渐进式 JavaScript 框架,广泛用于构建现代化的用户界面。无论你是前端新手还是有一定经验的开发者,Vue.js 都能帮助你快速构建高效、可维护的 Web 应用。本文将带你从零开始学习 Vue.js 的基础知识,并完成一个简单的 Vue 应用。

1. 什么是 Vue.js?

Vue.js 是一个用于构建用户界面的渐进式框架。它的核心库专注于视图层,易于与其他库或现有项目集成。Vue 的主要特点包括:

  • 响应式数据绑定:数据与 DOM 自动同步。

  • 组件化开发:将 UI 拆分为独立、可复用的组件。

  • 指令系统:通过指令扩展 HTML 的功能。

  • 轻量高效:核心库体积小,性能优秀。

2. 安装 Vue.js

2.1 使用 CDN

如果你只是想快速尝试 Vue.js,可以通过 CDN 直接在 HTML 文件中引入:

javascript"><script src="https://cdn.jsdelivr.net/npm/vue@2"></script>

2.2 使用 NPM

对于正式项目,推荐使用 npm 安装 Vue.js:

javascript">npm install vue

2.3 使用 Vue CLI

Vue CLI 是一个官方提供的脚手架工具,可以快速搭建 Vue 项目:

javascript">npm install -g @vue/cli
vue create my-project

3. 创建第一个 Vue 实例

每个 Vue 应用都是通过创建一个 Vue 实例来启动的。以下是一个简单的示例:

<div id="app">{{ message }}
</div><script>var app = new Vue({el: '#app', // 挂载点data: {message: 'Hello Vue!'}});
</script>

在这个例子中,data 对象中的 message 属性与 DOM 中的 {{ message }} 绑定,当 message 的值发生变化时,DOM 会自动更新。

4. Vue 的模板语法

Vue.js 使用基于 HTML 的模板语法,允许你声明式地将数据渲染到 DOM 中。

4.1 插值

使用双大括号 {{ }} 进行文本插值:

javascript"><p>{{ message }}</p>

4.2 指令

指令是带有 v- 前缀的特殊属性,用于扩展 HTML 的功能。

  • v-bind:动态绑定属性。

    <a v-bind:href="url">Link</a>
  • v-model:实现表单输入和应用状态之间的双向绑定。

    <input v-model="message">
  • v-for:基于数组渲染列表。

    javascript"><ul><li v-for="item in items">{{ item.text }}</li>
    </ul>
  • v-if / v-else:条件渲染。

    <p v-if="seen">Now you see me</p>
    <p v-else>Now you don't</p>

5. 计算属性和侦听器

5.1 计算属性

计算属性是基于依赖的缓存,只有当依赖发生变化时才会重新计算。

javascript">computed: {reversedMessage: function () {return this.message.split('').reverse().join('');}
}

5.2 侦听器

侦听器用于观察和响应 Vue 实例上的数据变动。

javascript">watch: {message: function (newVal, oldVal) {console.log('Message changed from ' + oldVal + ' to ' + newVal);}
}

6. 组件化开发

组件是 Vue.js 中最强大的功能之一,允许你将 UI 拆分为独立、可复用的代码片段。

javascript">Vue.component('todo-item', {props: ['todo'],template: '<li>{{ todo.text }}</li>'
});

在 HTML 中使用组件:

javascript"><ol><todo-item v-for="item in groceryList" v-bind:todo="item" v-bind:key="item.id"></todo-item>
</ol>

7. 生命周期钩子

Vue 实例在创建和销毁过程中会经历一系列生命周期钩子,你可以在这些钩子中执行自定义逻辑。

javascript">new Vue({data: {message: 'Hello Vue!'},created: function () {console.log('Vue instance created');},mounted: function () {console.log('Vue instance mounted');},updated: function () {console.log('Vue instance updated');},destroyed: function () {console.log('Vue instance destroyed');}
});

8. 示例:一个简单的 Vue 应用

以下是一个完整的 Vue.js 示例,展示了数据绑定、事件处理和组件化开发:

javascript"><div id="app"><p>{{ message }}</p><input v-model="message"><button v-on:click="reverseMessage">Reverse Message</button><ul><todo-item v-for="item in items" v-bind:todo="item" v-bind:key="item.id"></todo-item></ul>
</div><script>Vue.component('todo-item', {props: ['todo'],template: '<li>{{ todo.text }}</li>'});var app = new Vue({el: '#app',data: {message: 'Hello Vue!',items: [{ id: 1, text: 'Learn Vue' },{ id: 2, text: 'Build something awesome' }]},methods: {reverseMessage: function () {this.message = this.message.split('').reverse().join('');}}});
</script>

9. 总结

通过本文,你已经掌握了 Vue.js 的基础知识,包括 Vue 实例、模板语法、计算属性、侦听器、组件化开发以及生命周期钩子。Vue.js 的学习曲线平缓,但功能强大,适合构建从简单到复杂的各种应用。


http://www.ppmy.cn/server/174921.html

相关文章

AI自动化编程初探

先说vscodeclinemodelscope方案&#xff0c;后面体验trae或者cursor再写写其它的。vscode和trae方案目前来说是免费的&#xff0c;cursor要用claud需要付费&#xff0c;而且不便宜&#xff0c;当然效果可能是最好的。 vscode方案&#xff0c;我的经验是最好在ubuntu上&#xff…

工业物联网平台系列技术介绍-分类、聚类、逻辑回归

前言 工业物联网平台在运行过程中&#xff0c;设备运行数据、传感器数据等如潮水般涌现&#xff0c;这些数据类型丰富&#xff0c;涵盖设备的实时状态、性能参数、环境监测数值等。面对如此规模与复杂度的数据&#xff0c;亟需高效的数据处理与分析手段。分类、聚类、逻辑回归…

MongoDB 介绍与部署

MongoDB 的 Schema-less&#xff08;无模式&#xff09;特性 MongoDB 不需要提前定义表结构&#xff08;Schema&#xff09;&#xff0c;可以存储不同结构的文档&#xff08;JSON/BSON&#xff09;&#xff0c;这与传统的 SQL 关系型数据库&#xff08;RDBMS&#xff09;有很大…

OpenAI智能体初探:使用 OpenAI Responses API 在 PDF 中实现检索增强生成(RAG)

大家好,我是大 F,深耕AI算法十余年,互联网大厂技术岗。 知行合一,不写水文,喜欢可关注,分享AI算法干货、技术心得。 欢迎关注《大模型理论和实战》、《DeepSeek技术解析和实战》,一起探索技术的无限可能! 引子 在信息爆炸的时代,从大量 PDF 文档中快速准确地检索信息…

《苍穹外卖》SpringBoot后端开发项目核心知识点与常见问题整理(DAY1 to DAY3)

目录 一、在本地部署并启动Nginx服务1. 解压Nginx压缩包2. 启动Nginx服务3. 验证Nginx是否启动成功&#xff1a; 二、导入接口文档1. 黑马程序员提供的YApi平台2. YApi Pro平台3. 推荐工具&#xff1a;Apifox 三、Swagger1. 常用注解1.1 Api与ApiModel1.2 ApiModelProperty与Ap…

Sentinel熔断降级

1. 雪崩问题 2. Sentinel 3. QPS、TPS、RT、Concurrency、吞吐量 QPS&#xff1a;每秒请求数 TPS&#xff1a;每秒事务数&#xff0c;事务的概念一般大于请求 RT&#xff1a;响应时间&#xff0c;一般取平均响应时间 Concurrency&#xff1a;并发数&#xff0c;系统同时处理…

stm32 蓝桥杯 物联网 独立键盘的使用

在蓝桥杯物联网平台里面&#xff0c;有5个外接设备&#xff0c;其中有一个就是6个独立按键。首先&#xff0c;我们先看一下按键有关的电路图。 电路图与cubemx设定 由图可见&#xff0c;独立键盘组由两行三列构成&#xff0c;我们通过行列来锁定要访问的独立按键在哪。ROW1挂…

最短路算法

算法介绍 最短路是一种在一个有权图中求任意两点间的最短路径。 算法描述 最短路有很多的形式: 单源最短路: 就是固定起点的最短路。多源最短路: 就是不固定起点的最短路。其中Floyd就是求多源最短路的。 Floyd 算法流程 首先我们可以先枚举中间节点 k k k ,然后再枚…