上一节我们简单介绍了JS中的jQuery库,本节我们将介绍目前最流行的JS框架——vue.js。

Vue.js是一种渐进式JS框架,它旨在构建可响应的、组件化的用户界面。Vue.js的核心理念是将视图层抽象为一个可扩展的组件系统,这样开发人员可以使用简单的模板语法来构建复杂的用户界面。
上一节我们不是利用jQuery写了一个备忘录吗,这节我们通过Vue.js来写一个备忘录:
<!DOCTYPE html>
<html>
<head>
<title>Vue备忘录</title>
<!-- 1. 引入Vue.js库 -->
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<style>
.completed { text-decoration: line-through; color: pink; }
.todo-item { margin: 5px 0; padding: 8px; border: 1px solid #ddd; }
</style>
</head>
<body>
<!-- 2. Vue应用挂载点 -->
<div id="app">
<h2>备忘录</h2>
<!-- 3. 输入框和添加按钮 -->
<input type="text" v-model="newTodoText" placeholder="输入新任务">
<button @click="addTodo">添加任务</button>
<!-- 4. 任务列表容器 -->
<ul id="todoList">
<!-- 5. 使用v-for循环渲染任务列表 -->
<li v-for="todo in todos" :key="todo.id"
:class="['todo-item', { 'completed': todo.completed }]">
<!-- 6. 显示任务文本 -->
<span>{{ todo.text }}</span>
<!-- 7. 标记完成/取消完成按钮 -->
<button @click="toggleTodo(todo.id)" class="toggle-btn">
{{ todo.completed ? '取消完成' : '标记完成' }}
</button>
<!-- 8. 删除按钮 -->
<button @click="deleteTodo(todo.id)" class="delete-btn">删除</button>
</li>
</ul>
</div>
<script>
// 9. 从Vue中解构createApp方法
const { createApp } = Vue;
// 10. 创建Vue应用实例
createApp({
// 11. 定义响应式数据
data() {
return {
newTodoText: '', // 绑定输入框的值
todos: [], // 存储所有任务的数组
nextId: 1 // ID计数器,用于生成唯一任务ID
}
},
// 12. 定义操作方法
methods: {
// 12.1 添加新任务的方法
addTodo() {
// 12.1.1 获取输入框内容并去除空格
const text = this.newTodoText.trim();
// 12.1.2 检查输入是否有效
if (text) {
// 12.1.3 创建任务对象
const todo = {
id: this.nextId++, // 分配唯一ID并自增
text: text, // 任务文本内容
completed: false // 初始状态为未完成
};
// 12.1.4 将任务添加到数组(Vue自动触发视图更新)
this.todos.push(todo);
// 12.1.5 清空输入框
this.newTodoText = '';
}
},
// 12.2 切换任务完成状态的方法
toggleTodo(todoId) {
// 12.2.1 根据ID找到对应的任务对象
const todo = this.todos.find(t => t.id === todoId);
// 12.2.2 如果找到任务,切换其完成状态
if (todo) {
todo.completed = !todo.completed;
}
},
// 12.3 删除任务的方法
deleteTodo(todoId) {
// 12.3.1 过滤数组,移除指定ID的任务
this.todos = this.todos.filter(t => t.id !== todoId);
}
}
}).mount('#app'); // 13. 将Vue应用挂载到id为app的DOM元素上
</script>
</body>
</html>由于Vue的响应式系统会自动处理视图更新(简化了DOM操作),相比之下,jQuery版本需要手动实现renderTodos()函数来更新DOM,而Vue通过数据绑定自动处理视图更新。。
总结:Vue 的学习曲线较低,文档友好,使其特别适合初学者和中小型项目开发,对于一名合格的前端人员来说,Vue是一个不错的前端框架推荐。
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程