解锁前端Vue3宝藏级资料 第一章 Vue3项目创建 3 (Vite 创建 vue项目 )

news2024/10/2 6:29:17

  目前,Vue.js 官网建议在创建新项目的时候要使用 Vite 而不是 Vue CLI,尽量在开发环境中以 Vite 它作为 Vue.js 的编译基础来使用。Vite 是 Vue.js 作者Evan You 制作的 webpack 的无捆绑替代品,Vite + vue 方式很可能会成为未来的vue项目主流方式。
Vite官网 https://cn.vitejs.dev/地址。

  Vite 是一种新型前端构建工具,能够显著提升前端项目开发效率。它主要由两部分组成

  • 开发服务器:它基于原生 ES 模块提供了丰富的内建功能,模块热更新(HMR)。
  • 构建指令:它使用 Rollup 打包编译项目代码,并且它是预配置的可输出用于生产环境的高度优化过的静态资源。

现在我们介绍一下如何使用 Vite 工具来创建一个 Vue3 项目的开发环境。

第一章 Vue3项目创建 1 Vue CLI 创建vue项目
第一章 Vue3项目创建 2 使用 Webpack 5 搭建 vue项目
第一章 Vue3项目创建 3 Vite 创建 vue项目
第二章 Vue3 基础语法指令
第三章 Vue Router路由器的使用

1.3.1 创建vue项目

  运行Vite命令创建npm init vite@latest 创建项目,选择vue项目后在选择JavaScript模式,以后可以根据开发者的实际情况来选择对应的开发模式。

$ npm init vite@latest zht-vite-vue
Need to install the following packages:
  create-vite@latest
Ok to proceed? (y) y
? Select a framework: » - Use arrow-keys. Return to submit.
    Vanilla
>   Vue
    React
    Preact
    Lit
    Svelte
    Others
 Select a variant: » - Use arrow-keys. Return to submit.
>   JavaScript
    TypeScript
    Customize with create-vue ↗
    Nuxt ↗ 
    
Done. Now run:
  cd zht-vite-vue
  npm install
  npm run dev  

  执行完成后会创建一个zht-vite-vue项目的文件夹,所以用cd命令进入文件夹下,执行npm install 命令,将所有的 Vue.js+ vite所需的 JavaScript 依赖包加载到你的项目环境中来。

$ D:\vue>cd zht-vite-vue
$ D:\vue\zht-vite-vue>npm install

  npm install 完成后,使用 npm run dev 命令启动本地开发服务器。在浏览器中输入 URL(http://localhost:5173)会显示项目初始页面。

$ npm run dev 
> zht-vite-vue@0.0.0 dev
> vite

  VITE v3.2.0  ready in 1034 ms

  ➜  Local:   http://127.0.0.1:5173/
  ➜  Network: use --host to expose

项目环境正常下出现Vue+Vite的初始画面。
在这里插入图片描述

1.3.2 项目结构

zht-vite-vue
   |---node_modules
   |---index.html        //运行html
   |---src               //代码源文件
   |    |--components    //组件目录
   |    |     |---HelloWorld.vue  //模块代码
   |    |--main.js       //入口文件
   |    |--App.vue       //模板代码
   |----package.json     //配置文件

1 初始页 index.html

  在项目文件夹下的 zht-vite-vue/index.html文件中,描述了vue的初始化 html元素与挂载元素

<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <link rel="icon" type="image/svg+xml" href="/vite.svg" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Vite + Vue</title>
  </head>
  <body>
    <div id="app"></div>
    <script type="module" src="/src/main.js"></script>
  </body>
</html>

2 main.js

  在 index.html 中的 script 标签引入 main.js 文件。这个文件是Vue3代码与页面的唯一加载文件,文件地址在zht-vite-vue\src目录下。

import { createApp } from 'vue'
import './style.css'
import App from './App.vue'
createApp(App).mount('#app')

  首先创建一个Vue.js 的实例,实例对象vue通过createApp 函数导入并继承 。导入App.vue 文件,App.vue 文件中描述了页面内容。在通过createApp 中的mount 方法将App中的内容挂载到index.html页面中的id属性为app的div元素中。

3 App.vue

  目录中zht-vite-vue\src\App.vue 文件中编写vue模板代码,它分为三个部分(脚本标签、模板标签、样式标签)组成。

<script setup>
// This starter template is using Vue 3 <script setup> SFCs
// Check out https://vuejs.org/api/sfc-script-setup.html#script-setup
import HelloWorld from './components/HelloWorld.vue'
</script>

<template>
  <div>
    <a href="https://vitejs.dev" target="_blank">
      <img src="/vite.svg" class="logo" alt="Vite logo" />
    </a>
    <a href="https://vuejs.org/" target="_blank">
      <img src="./assets/vue.svg" class="logo vue" alt="Vue logo" />
    </a>
  </div>
  <HelloWorld msg="Vite + Vue" />
</template>

<style scoped>
.logo {
  height: 6em;
  padding: 1.5em;
  will-change: filter;
}
.logo:hover {
  filter: drop-shadow(0 0 2em #646cffaa);
}
.logo.vue:hover {
  filter: drop-shadow(0 0 2em #42b883aa);
}
</style>

4 HelloWorld.vue

  App.vue 文件中的模板标签包含一个自定义标签,与脚本标签中的 HelloWorld.vue 同名,它是我们导入的一个vue模块。vue模块是独立的代码单元,在有需要的它的地通过脚本标签的方法将它加载进来。

<script setup>
import { ref } from 'vue'
defineProps({
  msg: String
})
const count = ref(0)
</script>
<template>
  <h1>{{ msg }}</h1>
  <p>
    Install
    <a href="https://github.com/johnsoncodehk/volar" target="_blank">Volar</a>
    in your IDE for a better DX
  </p>
</template>

<style scoped>
.read-the-docs {
  color: #888;
}
</style>

  所有具有 vue 扩展名的文件,都统称为单文件组件 (SFC) 文件。在 Vue.js 中,应用程序是通过将 createApp 中指定的 App 组件作为根组件来导入其他组件进行运行的。开发时候可以在根组件 App 中编写所有处理,但随着功能增多,代码会变得越来越臃肿,造成维护和二次开发的困难。
  这时候可以通过按功能和业务逻辑来划分组件,将不同功能和业务需求的代码写在不同的vue文件中,通过引用和导入灵活使用它们。
  组件之间也是具有树状结构的,它们也会有自己的层级与继承关系。
在这里插入图片描述

1.3.3 Vite 编译

  在项目中package.json配置了Vite 编译打包与运行的命令。

  "scripts": {
    "build": "vite build",
    "preview": "vite preview"
  }

  运行打包命令npm run build ,默认的构建输出路径(dist)在文件下。

D:\vue\zht-vite-vue>npm run build
> zht-vite-vue@0.0.0 build
> vite build
vite v3.2.0 building for production...
✓ 16 modules transformed.
dist/assets/vue.5532db34.svg     0.48 KiB
dist/index.html                  0.43 KiB
dist/assets/index.43cf8108.css   1.26 KiB / gzip: 0.65 KiB
dist/assets/index.021287dc.js    52.60 KiB / gzip: 21.19 KiB

在默认的dist文件下编译代码生成。

在这里插入图片描述
  当你构建完成应用后,你可以通过运行 npm run preview 命令,在本地测试该应用。

$ npm run preview
> zht-vite-vue@0.0.0 preview
> vite preview
  ➜  Local:   http://127.0.0.1:4173/
  ➜  Network: use --host to expose

  可以在浏览器中http://localhost:4173方便的查看本地环境下构建的html页面代码是否正常。

可以通过 --port 参数来配置更改服务的运行端口。

package.json文件中加入
{
  "scripts": {
    "preview": "vite preview --port 8080"
  }
}

修改preview参数后,服务器运行 http://localhost:8080

$ npm run preview
> zht-vite-vue@0.0.0 preview
> vite preview --port 8080
  ➜  Local:   http://127.0.0.1:8080/
  ➜  Network: use --host to expose

在这里插入图片描述

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

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

相关文章

Spring学习|Spring配置:别名、import、依赖注入:构造器注入、Set方式注入(重点)、拓展方式注入

Spring配置 别名 我们可以在bean.xml中用alias标签给bean对象起一个别名&#xff0c;当我们在客户端通过context对象使用getBean方法获取对象时&#xff0c;可以通过这个别名获取&#xff0c;另一种方式是&#xff0c;可以在<bean标签后面加一个name&#xff0c;这个name后…

js 根据键判断值

最原始的写法&#xff1a; 改进后的写法&#xff1a; const DeviceTypeObj {SO2: "SO<sub>2</sub>",CO: "CO",NO: "NO",NO2: "NO<sub>2</sub>",O3: "O<sub>3</sub>", let value Dev…

亿发软件:智慧门店商超系统,2023新零售POS数字运营一体化管理

2023年9月6日&#xff0c;山东济宁一家超市因为酸奶价格标签错误而引发了广泛关注。标签原本显示几十个人为9.9元&#xff0c;但特价销售价却标为10元。这一小小的错误却在社交媒体上引发了轩然大波&#xff0c;让超市一度处于舆论的风口浪尖。超市工作人员回应&#xff0c;表示…

Python基础语法:数据分析利器

⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ &#x1f434;作者&#xff1a;秋无之地 &#x1f434;简介&#xff1a;CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作&#xff0c;主要擅长领域有&#xff1a;爬虫、后端、大数据…

网络技术十四:文件传输协议

文件传输协议 FTP 定义 文件传输协议 客户端/服务器模型&#xff0c;具备身份验证功能 双TCP连接 端口 采用双TCP连接方式 控制连接: 21 用于传输FTP命令和执行信息 用于在FTP客户端和FTP服务器之间传输FTP控制命令及命令执行信息。控制连接在整个FTP会话期间一直保持打开…

儿童安全门和围栏,以及游戏围栏等美国站要求的合规标准是什么?

儿童安全门和围栏 儿童安全门和围栏用于在门口&#xff08;如门道&#xff09;内设置围栏&#xff0c;或用作自支撑围栏&#xff0c;将幼儿可能在其中活动的区域围起来。这些商品可能由塑料、金属、乙烯树脂或木制组件等材料制成。此政策包括但不限于可扩展围栏、伸缩安全门和…

【系统设计系列】 负载均衡和反向代理

系统设计系列初衷 System Design Primer&#xff1a; 英文文档 GitHub - donnemartin/system-design-primer: Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards. 中文版&#xff1a; https://github.com/donnemart…

uniapp使用H5实现预览pdf文件

下载后把压缩包解压到自己的项目的static文件夹下的pdf文件下&#xff0c;如图 新建一个文件名为filePreview.vue <template><view><web-view :src"allUrl"></web-view></view> </template><script>export default {dat…

老师设计的库CRC计算

001 CRC计算 C0 67 E1 00 01 00 DE DD C1 未加粗的代入计算 data_len USART_RX_BUF[3] * 256 USART_RX_BUF[4] 8;//这里数组第3个和第4个计算长度 综合上面的 00 01 计算结果为“9” crc_result check_calc_crc16(data_len, USART_RX_BUF); //crc_result结果:0正确;1错误…

【HTML专栏1】语法规范、基础结构标签

本文属于HTML/CSS专栏文章&#xff0c;适合WEB前端开发入门学习&#xff0c;详细介绍HTML/CSS如果使用&#xff0c;如果对你有所帮助请一键三连支持&#xff0c;对博主系列文章感兴趣点击下方专栏了解详细。 博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;HTML/CS…

网络技术十八:VLAN间路由静态路由路由协议概述

VLAN间路由 定义 指导设备对不同vlan间进行三层数据转发 实现方式 单臂路由 交换机上划分多个VLAN 路由器单线连接到交换机 路由器接口 划分若干子接口&#xff0c;子接口的IP为下连vlan的网关&#xff0c;并绑定相应vlan 交换机接口 配置TRUNK&#xff0c;允许所有v…

数据库顶会 VLDB 2023 论文解读:字节跳动如何解决超大规模流式任务运维难题

本文解读了新加坡国立大学马天白教授团队、字节跳动基础架构-计算-流式计算团队联合发表在国际数据库与数据管理顶级会议 VLDB 2023 上的论文“StreamOps: Cloud-Native Runtime Management for Streaming Services in ByteDance”&#xff0c;介绍字节跳动内部基于数万 Flink …

vue使用谷歌地图实现地点查询

效果 代码 首先在index.html中引入谷歌地图资源 <script src"https://maps.googleapis.com/maps/api/js?key你的api密钥&librariesplaces"></script>页面中 <template><div class"pac-card div-style" id"pac-card"…

OpenResty介绍及实现限流

1 背景描述 Nginx作为一个高性能的Web服务器和反向代理服务器&#xff0c;已经稳定运行了多年。然而&#xff0c;考虑到后续分馆流量的接入&#xff0c;会对我们的系统造成难以预估的影响&#xff0c;因此在网关层对流量进行监控并管理就显得格外重要。本次调研目标为OpenRest…

【PowerQuery】Excel的PowerQuery的连接组的导入与导出

完成我们当前的数据连接之后,如果使用数据的用户不在本机该怎么办呢?这时候通常有两种方式来实现对于需要的数据访问。 将文件本身提供给最终用户如果数据文件本身不涉及到敏感数据连接定义,或者需要数据脱敏操作则比较适合使用这种方法提供给最终用户。但是如果使用的数据有…

IT运维监控系统和网络运维一样吗

IT运维监控系统和网络运维不是一样的。IT运维监控系统是一系列IT管理产品的统称&#xff0c;它所包含的产品功能强大、易于使用、解决方案齐全&#xff0c;可一站式满足用户的各种IT管理需求。而网络运维是指对网络设备进行监控、维护和管理&#xff0c;包括硬件故障的排除、软…

idea VCS配置多个远程仓库

Idea VCS配置多个远程仓库 首先要有连个远程仓库地址 idea 添加数据源 查看推送记录 添加数据源 ok之后填写账号密码 推送本地项目 选择不同远程地址 push 查看不同远程地址的 不同分支的 推送记录 不期而遇的温柔&#xff1a; 应用开源架构进行项目开发&#xff0c;特别是那…

android 注解详解

1&#xff0c;注解的概念 注解现在广泛的应用于android的各个开源框架中&#xff0c;不理解注解&#xff0c;我们就无法更好的提升我们的架构能力。那么什么是注解呢&#xff1f;注解&#xff08;Annotation&#xff09;&#xff0c;是JDK5.0 引入的一种注释机制。 注解是元数…

印刷企业如何利用MES管理系统改善生产计划

随着科技的发展&#xff0c;印刷MES管理系统正在逐渐改变印刷企业的生产管理模式。印刷MES管理系统是一种用于监控、协调、优化生产流程的系统&#xff0c;它能够提供实时、准确的数据&#xff0c;帮助企业管理者做出更好的生产决策。本文将探讨印刷企业如何利用MES管理系统改善…

SQL sever中表管理

目录 一、创建表&#xff1a; 1.1语法格式&#xff1a; 1.2示例&#xff1a; 二、修改表&#xff1a; 2.1语法格式&#xff1a; 2.2示例&#xff1a; 三、删除表&#xff1a; 3.1语法格式&#xff1a; 3.2示例&#xff1a; 四、查询表&#xff1a; 4.1语法格式&…