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

从0开始学vue:实现一个简单页面

Vue.js 是一个渐进式JavaScript框架,用于构建用户界面。下面我将带你从零开始学习Vue.js并创建一个简单的可运行页面。

1. 准备工作

首先,你需要了解几种学习Vue.js的方式:

方式一:使用CDN引入(最简单的方式)

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

方式二:使用Vue CLI创建项目(推荐方式)

  1. 首先安装Node.js(包含npm)
  2. 安装Vue CLI:
    npm install -g @vue/cli
    
  3. 创建项目:
    vue create my-first-vue-app
    
  4. 进入项目目录并运行:
    cd my-first-vue-app
    npm run serve
    

2. 创建一个简单的待办事项应用

创建Todo组件

在src/components目录下创建TodoList.vue文件:

<template><div class="todo-app"><h1>我的待办事项</h1><div class="add-todo"><input type="text" v-model="newTodo" @keyup.enter="addTodo"placeholder="输入待办事项..."><button @click="addTodo">添加</button></div><ul class="todo-list"><li v-for="(todo, index) in todos" :key="index" class="todo-item":class="{ completed: todo.completed }"><input type="checkbox" v-model="todo.completed"><span>{{ todo.text }}</span><button @click="removeTodo(index)" class="delete-btn">删除</button></li></ul><p v-if="todos.length === 0">暂无待办事项,添加一个吧!</p><p v-else>已完成 {{ completedCount }} / {{ todos.length }} 项</p></div>
</template><script>
export default {name: 'TodoList',data() {return {newTodo: '',todos: [{ text: '学习Vue.js', completed: false },{ text: '完成项目', completed: false },{ text: '购物', completed: true }]}},computed: {completedCount() {return this.todos.filter(todo => todo.completed).length;}},methods: {addTodo() {if (this.newTodo.trim() === '') return;this.todos.push({text: this.newTodo.trim(),completed: false});this.newTodo = '';},removeTodo(index) {this.todos.splice(index, 1);}}
}
</script><style scoped>
.todo-app {font-family: Arial, sans-serif;max-width: 600px;margin: 0 auto;padding: 20px;
}.todo-list {list-style: none;padding: 0;
}.todo-item {display: flex;align-items: center;padding: 10px;border-bottom: 1px solid #eee;
}.todo-item.completed {color: #888;text-decoration: line-through;
}.todo-item input {margin-right: 10px;
}.add-todo {display: flex;margin-bottom: 20px;
}.add-todo input {flex-grow: 1;padding: 8px;margin-right: 10px;
}.add-todo button {padding: 8px 16px;background-color: #42b983;color: white;border: none;border-radius: 4px;cursor: pointer;
}.delete-btn {margin-left: auto;background-color: #ff5252;color: white;border: none;border-radius: 4px;padding: 4px 8px;cursor: pointer;
}
</style>

修改App.vue

更新src/App.vue文件以包含我们的Todo组件:

<template><div id="app"><TodoList /></div>
</template><script>
import TodoList from './components/TodoList.vue'export default {name: 'App',components: {TodoList}
}
</script><style>
#app {font-family: Avenir, Helvetica, Arial, sans-serif;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;text-align: center;color: #2c3e50;margin-top: 60px;
}
</style>

运行项目

npm run serve

4. 下一步学习建议

  1. 组件系统:学习如何创建可复用的Vue组件
  2. Vue Router:学习如何实现单页应用(SPA)的路由
  3. Vuex:学习状态管理
  4. 生命周期钩子:了解Vue实例的生命周期
  5. Vue 3:了解Vue的最新版本及其新特性

5. 完整项目结构(使用Vue CLI创建)

如果你使用Vue CLI创建项目,典型的项目结构如下:

my-project/
├── public/
│   ├── index.html
│   └── favicon.ico
├── src/
│   ├── assets/
│   ├── components/
│   │   └── HelloWorld.vue
│   ├── App.vue
│   └── main.js
├── package.json
└── README.md

希望这个简单的教程能帮助你开始Vue.js的学习之旅!

http://www.lryc.cn/news/2395613.html

相关文章:

  • 在机器视觉测量和机器视觉定位中,棋盘格标定如何影响精度
  • CppCon 2014 学习: C++ Test-driven Development
  • RAGflow详解及实战指南
  • JWT 不对外,Session ID 对外:构建安全可控的微服务认证架构
  • [Godot] 如何导出安卓 APK 并在手机上调试
  • React 路由管理与动态路由配置实战
  • ZYNQ sdk lwip配置UDP组播收发数据
  • 11.21 LangGraph多轮对话系统实战:三步构建高效信息整理引擎,效率提升300%!
  • 高光谱成像相机:基于高光谱成像技术的玉米种子纯度检测研究
  • Linux《文件系统》
  • NLP学习路线图(十六):N-gram模型
  • 【Python办公】将Excel表格转json(字典)数据-可自定义key和value
  • Java内存区域与内存溢出异常分析与解决
  • Python训练第四十天
  • 硬件实时时钟(RTC)
  • InternVL2.5-多模态大模型评估专业图片
  • 医疗数理范式化:从范式迁移到认知革命的深度解析
  • 图神经网络在信息检索重排序中的应用:原理、架构与Python代码解析
  • leetcode hot100 二叉树(一)
  • 【技术支持】安卓11开机启动设置
  • 现代数据湖架构全景解析:存储、表格式、计算引擎与元数据服务的协同生态
  • 全志F1c200开发笔记——移植Debian文件系统
  • dis css port brief 命令详细解释
  • 支持功能安全ASIL-B的矩阵管理芯片IS32LT3365,助力ADB大灯系统轻松实现功能安全等级
  • BFS入门刷题
  • UE5 编辑器工具蓝图
  • 手写multi-head Self-Attention,各个算子详细注释版
  • 基于 Three.js 的文本粒子解体效果技术原理剖析
  • Vue组件定义
  • 数据仓库分层 4 层模型是什么?