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

Vue.js 基础教程:从入门到实践

一、Vue.js 简介

Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。与其他大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。

二、环境搭建

1. 使用ES模块构建版本

这是最简单的方式,适合初学者快速体验 Vue 的功能。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Vue 入门案例</title>
</head>
<body><div id="app">{{ message }}</div><script type="module">import { createApp } from 'https://unpkg.com/vue@3/dist/vue.esm-browser.js';const app = createApp({data() {return {message: 'Hello Vue!'}}});app.mount('#app');
</script>
</body>
</html>

C33A3751-AC71-4980-A2EC-2F650C146009.png

2. 通过 NPM 安装(适合大型项目)

npm install vue

三、Vue 常用指令详解与案例

Vue 提供了丰富的指令,用于在模板中绑定数据、事件、属性等。以下是常用的指令及其使用案例。

1. v-bind:绑定属性

用于绑定 HTML 属性到 Vue 实例的属性或表达式上。简写为 :

案例:绑定图片地址

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Vue 入门案例</title>
</head>
<body><div id="app"><img :src="imageUrl" alt="Vue Logo"></div><script type="module">import { createApp } from 'https://unpkg.com/vue@3/dist/vue.esm-browser.js';const app = createApp({data() {return {imageUrl: 'https://vuejs.org/images/logo.png'};}});app.mount('#app');
</script>
</body>
</html>

90BB0FDA-6E36-47CB-ABA0-AF26E3BBD98D.png

2. v-model:双向数据绑定

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

案例:输入框双向绑定

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Vue 入门案例</title>
</head>
<body><div id="app"><input type="text" v-model="message"><p>你输入的内容是: {{ message }}</p></div><script type="module">import { createApp } from 'https://unpkg.com/vue@3/dist/vue.esm-browser.js';const app = createApp({data() {return {message:''};}});app.mount('#app');
</script>
</body>
</html>

36F3B063-7100-4BB0-B2D4-843804CA5329.png

3. v-if / v-else-if / v-else:条件渲染

根据表达式的真假条件性地渲染元素。

案例:条件显示内容

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Vue 入门案例</title>
</head>
<body><div id="app"><p v-if="score>=90">优秀</p><p v-else-if="score>=75">良好</p><p v-else-if="score>=60">及格</p><p v-else>不及格</p></div><script type="module">import { createApp } from 'https://unpkg.com/vue@3/dist/vue.esm-browser.js';const app = createApp({data() {return {score:85};}});app.mount('#app');
</script>
</body>
</html>

4. v-for:列表渲染

用于基于数组渲染列表。

案例:遍历数组

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Vue 入门案例</title>
</head>
<body><div id="app"><ul ><li v-for="item in list" :key="item.id">{{ item.id }} - {{ item.name }} - {{ item.age }}</li></ul></div><script type="module">import { createApp } from 'https://unpkg.com/vue@3/dist/vue.esm-browser.js';const app = createApp({data() {return {list: [{ id: 1, name: '张三', age: 18 },{ id: 2, name: '李四', age: 28 },{ id: 3, name: '王五', age: 38 }]};}});app.mount('#app');
</script>
</body>
</html>

86E2B2B3-91BE-4620-AFB1-6A7F5FCB6EFD.png

5. v-on:事件监听

用于监听 DOM 事件,简写为 @

案例:点击按钮增加计数

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>v-on 示例</title><script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script>
</head>
<body><div id="app"><p>当前计数:{{ count }}</p><button v-on:click="count++">增加</button><!-- 简写形式 --><button @click="count--">减少</button></div><script>new Vue({el: '#app',data: {count: 0}});</script>
</body>
</html>

6. v-show:根据条件显示或隐藏元素

v-if 不同,v-show 通过 CSS 的 display 属性控制元素的显示和隐藏。

案例:切换元素显示

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>v-show 示例</title><script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script>
</head>
<body><div id="app"><p v-show="isVisible">这个段落是可见的</p><button @click="isVisible = !isVisible">切换显示</button></div><script>new Vue({el: '#app',data: {isVisible: true}});</script>
</body>
</html>

四、综合案例:待办事项列表

结合以上指令,我们创建一个简单的待办事项列表应用。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Vue 待办事项列表</title><script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script><style>body {font-family: Arial, sans-serif;padding: 20px;}ul {list-style-type: none;padding: 0;}li {margin: 5px 0;}.completed {text-decoration: line-through;color: gray;}</style>
</head>
<body><div id="app"><h1>待办事项列表</h1><input v-model="newTodo" @keyup.enter="addTodo" placeholder="添加新任务"><button @click="addTodo">添加</button><ul><li v-for="todo in todos" :key="todo.id"><input type="checkbox" v-model="todo.completed"><span :class="{ completed: todo.completed }">{{ todo.text }}</span><button @click="removeTodo(todo.id)">删除</button></li></ul></div><script>new Vue({el: '#app',data: {newTodo: '',todos: []},methods: {addTodo() {if (this.newTodo.trim() === '') return;this.todos.push({id: Date.now(),text: this.newTodo,completed: false});this.newTodo = '';},removeTodo(id) {this.todos = this.todos.filter(todo => todo.id !== id);}}});</script>
</body>
</html>

150F900A-4CC6-462A-AEDE-3F08F381AAAD.png

五、总结

通过本教程,我们学习了:

  • Vue.js 的基本概念和环境搭建
  • 常用指令(v-bindv-modelv-ifv-forv-onv-show)的使用
  • 通过一个综合案例,将所学知识应用到实际开发中

Vue.js 的学习曲线平缓,但功能强大。掌握这些基础知识后,你可以进一步探索 Vue 的组件化开发、路由管理(Vue Router)、状态管理(Vuex)等高级特性,构建更加复杂和高效的应用。

http://www.dtcms.com/a/573436.html

相关文章:

  • .net实现秒杀商品(Redis高并发)
  • 解决phpstudy 8.x软件中php8.2.9没有redis扩展的问题
  • 【MCP系列】飞书MCP使用
  • 阜新网站设计淮北市矿务局工程建设公司网站
  • 攻克维吾尔语识别的技术实践(多语言智能识别系统)
  • [Windows] 漫画翻译工具Saber Translator2.5.1
  • 手术机器人智能控制系统基本课时项目化课件(2025.08.25)
  • NATS安装与配置完全指南
  • 开发网站如何选需要注意什么汉川网页设计
  • seo根据什么具体优化想做个卷帘门百度优化网站
  • Rust 练习册 7:高阶生命周期与高阶 trait 限定
  • Linux服务器通过密钥登录服务器
  • 网站开发2008家纺外发加工订单网
  • 广州地铁站路线图广告设计师证怎么考
  • 【拾遗补漏】.NET 常见术语集
  • 从零开发一个简单的Web爬虫(使用Requests和BeautifulSoup)
  • 荷城网站设计做网站找哪家最好
  • Hadoop 分布式计算MapReduce和资源管理Yarn
  • DOM XMLHttpRequest
  • day08(11.5)——leetcode面试经典150
  • XML CDATA 区块详解
  • 网站专题页优化网站推广南京公司
  • 记录GDI+保存位图
  • 市值分析:半导体龙头的估值边界在哪里?——以NVIDIA为案例的概率化拆解
  • 内蒙古创意网站开发微网站建设服务商
  • 网站做全景图极速网站建设定制
  • wordpress新增站点盐城整站优化
  • 网络安全常见的框架漏洞
  • 停车场管理系统基础知识与原理
  • 安卓进阶——跨进程通信