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

【前端VUE】VUE3第一节—vite创建vue3工程

什么是VUE

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

截止到2024年7月3号为止,vue的最新版本是3.4.31
在这里插入图片描述

创建VUE3工程

可以通过两种方式创建,第一种利用vue-cli脚手架,第二种通过vite创建

备注:目前vue-cli已处于维护模式,官方推荐基于 Vite 创建项目。

基于 vue-cli 创建

点击链接可查看构建vue环境需要的前提依赖怎么安装,以及怎么通过vue-cli创建vue3工程
Vue3环境安装

基于vue-cli脚手架构建

## 查看@vue/cli版本,确保@vue/cli版本在4.5.0以上
vue --version## 安装或者升级你的@vue/cli 
npm install -g @vue/cli## 执行创建命令
vue create vue_test##  随后选择3.x
##  Choose a version of Vue.js that you want to start the project with (Use arrow keys)
##  > 3.x
##    2.x## 启动
cd vue_test
npm run serve
基于 vite 创建 (推荐)

vite 是新一代前端构建工具,官网地址:https://vitejs.cn

Vite 需要 Node.js 版本 18+ 或 20+。然而,有些模板需要依赖更高的 Node
版本才能正常运行,当你的包管理器发出警告时,请注意升级你的 Node 版本。

确保你安装了最新版本的 Node.js,并且你的当前工作目录正是打算创建项目的目录。在命令行中运行以下命令 (不要带上 $ 符号):

## 1.创建命令
npm create vue@latest## 2.具体配置
## 配置项目名称
√ Project name: vue3_test
## 是否添加TypeScript支持
√ Add TypeScript?  Yes
## 是否添加JSX支持
√ Add JSX Support?  No
## 是否添加路由环境
√ Add Vue Router for Single Page Application development?  No
## 是否添加pinia环境
√ Add Pinia for state management?  No
## 是否添加单元测试
√ Add Vitest for Unit Testing?  No
## 是否添加端到端测试方案
√ Add an End-to-End Testing Solution? » No
## 是否添加ESLint语法检查
√ Add ESLint for code quality?  Yes
## 是否添加Prettiert代码格式化
√ Add Prettier for code formatting?  No

在这里插入图片描述

项目构建完成
在这里插入图片描述

执行命令启动vue工程

npm run dev

在这里插入图片描述

在这里插入图片描述

创建完任务出现一个问题,提示找不到模块“./App.vue”或其相应的类型声明。ts(2307)

在这里插入图片描述
导致出现以上问题是因为未定义.vue文件的类型,导致ts无法解析其类型
在文件根目录下面的,vite-env.d.ts文件中添加如下代码,即可成功解决该问题。

declare module "*.vue" {import type { DefineComponent } from "vue";const vueComponent: DefineComponent<{}, {}, any>;export default vueComponent;}

创建一个 Vue 应用

每个 Vue 应用都是通过 createApp 函数创建一个新的 应用实例:

import { createApp } from 'vue'const app = createApp({/* 根组件选项 */
})

我们传入 createApp 的对象实际上是一个组件,每个应用都需要一个“根组件”,其他组件将作为其子组件。

如果你使用的是单文件组件,我们可以直接从另一个文件中导入根组件。

import { createApp } from 'vue'
// 从一个单文件组件中导入根组件
import App from './App.vue'const app = createApp(App)

应用实例必须在调用了 .mount() 方法后才会渲染出来。该方法接收一个“容器”参数,可以是一个实际的 DOM 元素或是一个 CSS 选择器字符串:

<div id="app"></div>
app.mount('#app')

应用根组件的内容将会被渲染在容器元素里面。容器元素自己将不会被视为应用的一部分。

.mount() 方法应该始终在整个应用配置和资源注册完成后被调用。同时请注意,不同于其他资源注册方法,它的返回值是根组件实例而非应用实例。

DOM 中的根组件模板

根组件的模板通常是组件本身的一部分,但也可以直接通过在挂载容器内编写模板来单独提供:

<div id="app"><button @click="count++">{{ count }}</button>
</div>
import { createApp } from 'vue'const app = createApp({data() {return {count: 0}}
})app.mount('#app')

当根组件没有设置 template 选项时,Vue 将自动使用容器的 innerHTML 作为模板。

DOM 内模板通常用于无构建步骤的 Vue 应用程序。它们也可以与服务器端框架一起使用,其中根模板可能是由服务器动态生成的。

总结

  • Vite 项目中,index.html 是项目的入口文件,在项目最外层。
  • 加载index.html后,Vite 解析 <script type="module" src="xxx"> 指向的JavaScript
  • Vue3**中是通过 **createApp 函数创建一个应用实例。

相关文章:

  • 二叉树中序遍历-递归法详解-数据结构与算法
  • Qt/C++模拟鼠标键盘输入
  • 【ruoyi】docker 项目实战
  • 算法训练营day67
  • macOS 上或linux安装 Jenkins
  • GNeRF代码复现
  • python水仙花数 青少年编程电子学会python编程等级考试三级真题解析2022年3月
  • php+极光推送(厂商通道) jpush推送
  • debug-mmlab
  • Apache Calcite Linq4j学习
  • MySQL数据库学习指南与学习资源推荐
  • 题解:CF1981C(Turtle and an Incomplete Sequence)
  • Linux源码阅读笔记12-RCU案例分析
  • 『MySQL 实战 45 讲』22 - MySQL 有哪些“饮鸩止渴”提高性能的方法?
  • onTouch()与onTouchEvent()的区别
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • extjs4学习之配置
  • Mysql优化
  • PHP的类修饰符与访问修饰符
  • Shadow DOM 内部构造及如何构建独立组件
  • Vue 重置组件到初始状态
  • 关于extract.autodesk.io的一些说明
  • 利用jquery编写加法运算验证码
  • 悄悄地说一个bug
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 译米田引理
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (九十四)函数和二维数组
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (四)React组件、useState、组件样式
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (转) Face-Resources
  • (转)linux下的时间函数使用
  • **CI中自动类加载的用法总结
  • .NET CF命令行调试器MDbg入门(三) 进程控制
  • .Net Memory Profiler的使用举例
  • .net wcf memory gates checking failed
  • .net6 webapi log4net完整配置使用流程
  • .net6Api后台+uniapp导出Excel
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc
  • .net专家(高海东的专栏)
  • @Mapper作用
  • [Android] Upload package to device fails #2720
  • [Android]创建TabBar
  • [Apio2012]dispatching 左偏树
  • [AutoSar]BSW_OS 02 Autosar OS_STACK
  • [C#]使用C#部署yolov8的目标检测tensorrt模型
  • [C#C++]类CLASS
  • [C#基础知识]专题十三:全面解析对象集合初始化器、匿名类型和隐式类型
  • [COI2007] Sabor
  • [Hive] INSERT OVERWRITE DIRECTORY要注意的问题