Vue入门:vue项目的创建和基本概念

一、vue的基本简介

1. 什么是vue?

Vue (发音为 /vjuː/,类似 view) 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建,并提供了一套声明式的、组件化的编程模型,帮助你高效地开发用户界面。无论是简单还是复杂的界面,Vue 都可以胜任。

2. 渐进式框架

Vue 是一个框架,也是一个生态。其功能覆盖了大部分前端开发常见的需求。但 Web 世界是十分多样化的,不同的开发者在 Web 上构建的东西可能在形式和规模上会有很大的不同。考虑到这一点,Vue 的设计非常注重灵活性和“可以被逐步集成”这个特点。根据你的需求场景,你可以用不同的方式使用 Vue:

  • 无需构建步骤,渐进式增强静态的 HTML
  • 在任何页面中作为 Web Components 嵌入
  • 单页应用 (SPA)
  • 全栈 / 服务端渲染 (SSR)
  • Jamstack / 静态站点生成 (SSG)
  • 开发桌面端、移动端、WebGL,甚至是命令行终端中的界面

3. 单文件组件

在大多数启用了构建工具的 Vue 项目中,我们可以使用一种类似 HTML 格式的文件来书写 Vue 组件,它被称为单文件组件 (也被称为 *.vue 文件,英文 Single-File Components,缩写为 SFC)。大家可以认为vue只要一个页面(一个HTML文件),页面的跳转和切换都是在这个页面上,基于路由来进行vue组件的切换。

二、怎么创建第一个vue项目

1、确保存在nodejs,可以通过npm -v测试,没有需要npm install,(如果已经安装,控制台不能使用,需要配置环境变量)

 如果没有下载通过一下代码下载:

npm install

2、 npm create vue@latest:创建一个最新版本的vue项目

 npm create vue@latest

3、cd  项目名:切换到当前项目

4、npm install(简写:install i):在项目中安装nodejs

5、npm run dev:启动项目

6. 创建成功效果

三、项目结构解析

了解一门技术的最简单的方法就是了解项目的目录结构,这里就为大家详细的介绍一下项目结构:

 四、基础页面样式和基础内容的格式化

 打开终端打开项目网页的页面查看:

 页面并不是空的,原因是每次创建一个新项目的时候都会有自己的基础页面,我们可以把基础样式的压面内容和样式删掉,接来就带大家删除:

删除和注释后的样子:

删除App根组件的代码:

保留结构层(html底代码),样式层(css样式代码),逻辑层(te/js代码)的基本代码:

 再打开 打开终端打开项目网页的页面查看:

这样原来的页面和基础样式就被清除了。 

五、选项式 API (Options API) 和组合式 API(Composition API)

1. 基本概念

其实我相信大家看见听见选项式API和组合式API大家肯定会都会有个问题:

①这个两个到底是什么?

  • 选项式 API(Options API)是 Vue2 中主要的编程方式,在 Vue3 中也保持兼容。它通过在组件对象中定义 datamethodscomputedwatch 等选项来组织代码,每个选项对应组件的不同功能模块。
  • 组合式 API(Composition API)是 Vue3 引入的新特性,以 setup 函数为入口,通过 refreactivecomputed 等函数来创建响应式数据和逻辑,允许将相关功能的代码聚合在一起,更灵活地组织组件逻辑
  • 总的来说:选项式 API(vue2:) 和组合式 API(vue3)是vue的两种不同的写法,都能通过他们来写页面,但是新技术肯定要比旧技术要好,所以我们以后还是主要学习组合式 API。

②有什么区别吗?

对比维度选项式 API组合式 API
代码组织方式按选项(datamethods 等)分割,相关逻辑可能分散按功能模块聚合,同一功能的代码集中在一起
灵活性逻辑复用依赖 mixin,易产生命名冲突和来源不清问题可通过自定义函数封装逻辑,复用性更高,来源清晰
类型支持对 TypeScript 支持较弱,类型推断有限天然适配 TypeScript,类型检查更完善
学习成本直观易懂,适合初学者入门需理解响应式 API(如 refreactive),初期有一定门槛
适用场景简单组件或中小型项目复杂组件或大型项目,便于维护和扩展

③都要学吗?

对于新手,可先掌握选项式 API 建立基础,再逐步学习组合式 API;对于有经验的开发者,建议重点掌握组合式 API 以充分发挥 Vue3 的优势。

2. vue的子组件的创建和页面渲染的原理

2.1 创建子组件

创建选项式子组件:

创建组合式子组件:(代码更加简介)

 2.2 单页面渲染的原理

大家仔细阅读了前面的内容应该知道vue只有一个页面,渲染的基本步骤是:

components的子组件==>App根组件==>main.ts渲染==>index页面

①子组件写入基本文字提示

②导入App.vue根组件 

 ③main.ts渲染到index

3. 选项式API示例

<template><div class="person"><h2>姓名:{{ name }}</h2><h2>年龄:{{ age }}</h2><button @click="changeName">修改名字</button><button @click="changeAge">年龄+1</button><button @click="showTel">点我查看联系方式</button></div>
</template>
<script lang="ts">
export default {name: 'App',data() {return {name: '张三',age: 18,tel: '13888888888'}},methods: {changeName() {this.name = 'zhang-san'},changeAge() {this.age += 1},showTel() {alert(this.tel)}}
}
</script>
<style scoped>
</style>

4. 组合式API实例

<script setup lang="ts">import { ref } from 'vue'let name = ref('张三')let age = ref(18)let tel = ref('12345678901')function changeName() {name.value = '李四'}function changeAge() {age.value++}function showTel() {alert(tel.value)}
</script><template><h1>组合式API写法</h1><div class="person"><h2>姓名:{{ name }}</h2><h2>年龄:{{ age }}</h2><button @click="changeName">修改名字</button><button @click="changeAge">年龄+1</button><button @click="showTel">点我查看联系方式</button></div>
</template><style scoped></style>

运行结果:

六、总结

Vue3 作为 Vue.js 的重大更新,带来了性能的显著提升、源码的优化、更好的 TypeScript 支持以及众多新特性。在项目创建方面,Vite 作为新一代构建工具,相比 vue - cli 具有更快的启动速度和更好的开发体验,是创建 Vue3 项目的推荐选择。

通过本文的介绍,我们了解了 Vue3 的核心特性、项目创建方法、第一个应用的实现以及实际案例解析。希望这些内容能帮助你快速上手 Vue3,并在实际开发中充分发挥其优势。无论是从 Vue2 迁移到 Vue3,还是直接学习 Vue3,都能感受到它带来的便利和提升。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/91135.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/91135.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2.oracle保姆级安装教程

一、Oracle数据库安装1.找到软件的位置 D:\学习软件\Oracle&#xff0c;并解压软件2.双击setup.exe3.选择 是4.去掉勾&#xff0c;下一步5.创建和配置数据库&#xff0c;下一步6.桌面类&#xff0c;下一步7.配置安装路径地址和密码8.点完成9.正在安装&#xff0c;稍等片刻10.有…

STM32 软件模拟 I2C 读写 MPU6050--实现加速度与陀螺仪数据采集

演示视频&#xff1a; https://www.bilibili.com/video/BV1iCQRYXEBb/?share_sourcecopy_web&vd_source0e4269581b0bc60d57a80c9a27c98905一、前言在嵌入式开发中&#xff0c;MPU6050 六轴传感器因其集成加速度计和陀螺仪且成本低廉&#xff0c;广泛应用于平衡小车、飞控、…

TFLOPs与TOPS的转换关系详解:如何衡量AI芯片的算力?

在评估AI芯片或计算硬件的性能时&#xff0c;我们经常会遇到TFLOPs和TOPS这两个关键指标。很多开发者对它们的区别和转换关系存在疑惑。本文将深入解析这两个指标的含义、应用场景及转换方法&#xff0c;并提供实际应用中的注意事项。 一、基本概念解析 1.1 TFLOPs&#xff08;…

C语言:第11天笔记

C语言&#xff1a;第11天笔记 内容提要函数函数的概述函数的分类函数的定义形参和实参函数的返回值函数的调用函数的声明函数 函数的概述 **函数&#xff1a;**实现一定功能的&#xff0c;独立的代码模块&#xff0c;对于函数的使用&#xff0c;一定是先定义&#xff0c;后使 ​…

java导出pdf(使用html)

引入maven <dependencies><!-- Thymeleaf --><dependency><groupId>org.thymeleaf</groupId><artifactId>thymeleaf</artifactId><version>3.1.1.RELEASE</version> <!-- 或与 Spring Boot 匹配的版本 --></de…

Qt 远程过程调用(RPC)实现方案

在分布式系统开发中&#xff0c;远程过程调用&#xff08;RPC&#xff09;是实现跨进程、跨机器通信的重要技术。Qt 作为一个强大的跨平台框架&#xff0c;提供了多种 RPC 实现方案&#xff0c;能够满足不同场景下的通信需求。本文将深入探讨 Qt 中 RPC 的各种实现方式&#xf…

攻防世界-引导-Web_php_unserialize

题目内容&#xff1a;出现一段源代码&#xff0c;分段分析第一部分如下<?php class Demo { private $file index.php;public function __construct($file) { $this->file $file; }function __destruct() { echo highlight_file($this->file, true); }function __w…

pytorch学习笔记-自定义卷积

未完结的草稿———&#xff01;大概是准备整合一下常见的层&#xff0c;整合完感觉就可以进行搭建了&#xff08;还没进行到这一步所以不太确定版&#xff09; &#xff08;ps我将在完结这一篇的时候删除上面的小字and二编一下整篇文章的结构&#xff0c;如果看到了这部分文字…

[明道云]-基础教学2-工作表字段 vs 控件:选哪种?

本文深入解析“工作表字段”与“控件”的关系与差别,并从结构、功能、使用场景和选型建议等方面进行对比。 一、基础概念厘清 ✅ 工作表字段 = 数据模型中的列 工作表字段相当于数据库表中的列,是记录每条业务对象(如订单、客户等)属性的数据项,每个字段都有明确的名称和…

C++-一篇文章入门coroutines协程

文章目录前言什么是协程协程实现原理C协程的最小例子12345协程等效代码协程传值的例子前言 最近学习了一下C协程&#xff0c;这篇文章将介绍协程的相关概念&#xff0c;以及在C中如何使用协程。 什么是协程 C中&#xff0c;协程&#xff08;coroutines&#xff09;可以理解为…

数字经济专业的就业全景指南

CDA数据分析师证书含金量高&#xff0c;适应了未来数字化经济和AI发展趋势&#xff0c;难度不高&#xff0c;行业认可度高&#xff0c;对于找工作很有帮助。一、数字经济就业热力图二、核心岗位发展路径1. 互联网数字运营岗2. 金融科技岗岗位类型技能组合证书加持5年薪资范围智…

PDF转Word免费工具!批量处理PDF压缩,合并, OCR识别, 去水印, 签名等全功能详解

大家好&#xff0c;欢迎来到程序视点&#xff01;我是你们的老朋友.小二&#xff01;前言PDF软件我发的非常多&#xff0c;但今天这款工具是大家公认最值得推荐的&#xff0c;这款软件就是PDF24PDF24几乎包含了PDF的所有功能&#xff0c;目前是更新到了最新版本&#xff01;文末…

Flutter开发实战之Widget体系与布局原理

第3章:Widget体系与布局原理 在前面两章中,我们已经搭建好了Flutter开发环境,并且了解了Dart语言的基础知识。现在是时候深入Flutter的核心——Widget体系了。如果说Dart是Flutter的语言基础,那么Widget就是Flutter的灵魂。理解Widget体系,是掌握Flutter开发的关键所在。…

C++:stack与queue的使用

stack与queue的使用一.stack与queuej基础1.stack1.1基本认识1.2示例代码代码功能解析2.queue2.1基础知识操作说明2.2示例代码代码分析 一.stack与queuej基础 1.stack 1.1基本认识以上图片展示了栈&#xff08;stack&#xff09;这种数据结构的基本操作示意。栈是一种遵循后进先…

Unity 编辑器开发 之 Excel导表工具

一个简单的Excel导表工具&#xff0c;可以用来热更数据配置工具使用&#xff1a;&#xfeff;&#xfeff;执行菜单 SDGSupporter/Excel/1.Excel2Cs 生成c#脚本。&#xfeff;&#xfeff;等待C#类编译完成&#xfeff;&#xfeff;执行菜单 SDGSupporter/Excel/2.Excel2Bytes …

【数据结构与算法】力扣 415. 字符串相加

题目描述 415. 字符串相加 给定两个字符串形式的非负整数 num1 和num2 &#xff0c;计算它们的和并同样以字符串形式返回。 你不能使用任何內建的用于处理大整数的库&#xff08;比如 BigInteger&#xff09;&#xff0c; 也不能直接将输入的字符串转换为整数形式。 示例 1…

进阶向:Manus AI与多语言手写识别

Manus AI与多语言手写识别:从零开始理解 手写识别技术作为人工智能领域的重要应用之一,近年来在智能设备、教育、金融等行业得到了广泛运用。根据市场调研机构IDC的数据显示,2022年全球手写识别市场规模已达到45亿美元,预计到2025年将突破70亿美元。其中,多语言手写识别技…

Javaweb————HTTP请求头属性讲解

❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️前面我们已经说过http请求分为三部分&#xff0c;请求行&#xff0c;请求头和请求体 请求头包含若干个属性&#xff1a;格式为属性名&#xff1a;属性值&#xff0c;这篇文章我们就来介绍一下http请求头中一些常见属性的含义 我们…

9.c语言常用算法

查找顺序查找&#xff08;线性查找&#xff09;算法思想&#xff1a;从数组的第一个元素开始&#xff0c;逐个与目标值进行比较&#xff0c;直到找到目标值或查找完整个数组。时间复杂度&#xff1a;最好情况&#xff1a;O(1)&#xff08;目标在第一个位置&#xff09;最坏情况…

AI小智源码分析——音频部分(一)

一、源码跳转这里采用了函数重载来进行代码复用&#xff0c;当需要对I2S接口的数据进行配置&#xff0c;比如左右音道切换&#xff0c;可以使用第二个构造函数&#xff0c;这里小智使用的是第一个构造函数&#xff0c;即只传递I2S相关的引脚参数&#xff08;不带slot mask&…