Vue学习记录之一(介绍及脚手架的使用)

news/2024/9/18 20:53:32 标签: vue, elementui

一、背景知识介绍

1、构建工具介绍

Vite, Webpack,Rollup, Parce

构建工具优点缺点
Vite- 快速启动,秒级热更新,更快的构建速度,更好的开发体验;
- 支持 Vue3 和 ES modules 的原生特性,轻松实现按需加载。
- 对于单页应用和小型项目的构建效率高
- 可以快速地启动开发服务器
- 能够快速实现 SSR
- 对于ESM的支持更加友好
- 对于大型项目构建效率不高
- 不支持IE11及以下浏览器
Webpack- 功能强大、可配置性高
- 支持各类资源的处理、打包和优化
- 支持热重载和模块热替换
- 社区支持广泛、插件丰富
- 学习成本较高,配置文件繁琐,构建速度慢;
- 初学者可能会遇到各种问题,需要不断深入学习和实践;
- 大型项目的构建成本可能较高。
- 初次构建时间长
- 构建速度较慢
Rollup- 构建速度快、效率高
- 生成的代码体积小
- 对代码进行静态分析和优化
- 支持Tree shaking等高级特性
- 对于需要动态加载的项目不太友好
- 配置较为复杂
- 处理HTML、CSS、图片等资源相对不太方便
Parce- 零配置、自动化高
- 开箱即用、易上手
- 支持多种资源的打包和优化
- 构建速度较快
- 对于一些高级需求不太友好
- 不支持Tree shaking
- 社区生态相对不够完善

2、包管理/依赖更新工具

  • npm, pnpm, yarn

  • npm: 安装Node.js 后就可以使用

  • pnpm: 即使没有Node.js,也可以直接安装pnpm,也可以使用npm安装,npm install -g pnpm

  • yarn: npm install -g yarn

3、框架的选择

脚手架(框架):用于初始化,创建项目,选择性安装需要的插件,指定统一的风格,生成demo。

  • React是一个用于构建Web应用程序UI组件的JavaScript库,主要用于构建UI

  • Angular是一个由Google支持的基于TypeScript的JavaScript框架。这是一个非常受欢迎的前端开发框架。Angular是作为Angular 2或Angular发布的,它构成了AngularJS(框架的第一个版本)的重写。

  • Vue.js是讨论最多且发展最快的JavaScript框架之一

  • Vanilla 是一款以Openresty为基础的框架,它以简洁、高效的特性吸引了众多开发者的目光。Vanilla不仅仅是一个简单的工具集,更是一个完整的生态系统,提供了一系列组件,如Bootstrap、Router、Controllers、Models和Views,帮助开发者快速构建稳定且高性能的Web应用程序。

二、项目的部署

Vue2 的脚手架有一种:VueCli

Vue3 的脚手架有两种:VueCli + Vite

Vite: 是优化了rollup构建工具, VueCli 使用的Webpack构建工具。

推荐使用 Vue3 + Vite

# 1、构建项目
pnpm create vite@latest 项目名称 #npm create vite@latest 项目名称
# 2、选择大框架
    Vanilla
>   Vue
    React
    Preact
    Lit
    Svelte
    Solid
    Qwik
    Others
# 3、选择语言
    TypeScript
    JavaScript
>   Customize with create-vue ↗
    Nuxt ↗   #也是Vue的一个轻量级框架。可用来创建服务端渲染 (SSR) 应用,也可充当静态站点引擎生成静态站点应用。
#TypeScript 是 JavaScript 的超集,增加了静态类型检查。通过在代码中显式声明变量的类型,TypeScript 提供了更强的类型安全性,能在编译时捕获类型错误
# 4、    
√ 是否使用 TypeScript 语法? ... 否 / 是
√ 是否启用 JSX 支持? ... 否 / 是
√ 是否引入 Vue Router 进行单页面应用开发? ... 否 / 是
√ 是否引入 Pinia 用于状态管理? ... 否 / 是
√ 是否引入 Vitest 用于单元测试? ... 否 / 是
√ 是否要引入一款端到端(End to End)测试工具? » 不需要
√ 是否引入 ESLint 用于代码质量检测? ... 否 / 是
√ 是否引入 Vue DevTools 7 扩展用于调试? (试验阶段) ... 否 / 是
正在初始化项目 C:\Users\Administrator\Desktop\dk-ruoyi\demo3...

项目初始化完成,可执行以下命令:

  cd demo3
  pnpm install
  pnpm dev

在这里插入图片描述
目录介绍

project-name
│
├── public                  # 静态资源
│   ├── index.html          # HTML 模板
│   └── favicon.ico         # Favicon
│
├── src
│   ├── assets              # 资源文件
│   ├── components          # 组件
│   ├── router              # 路由
│   ├── views               # 页面
│   ├── store               # 状态管理
│   ├── styles              # CSS/SCSS/SASS/LESS 样式
│   ├── utils               # 工具函数
│   ├── directives          # 自定义指令
│   ├── mixins              # 混入
│   ├── types               # TypeScript 类型定义
│   ├── App.vue             # 主组件
│   ├── main.ts             # 入口文件
│   └── vite-env.d.ts       # Vite 类型定义
│
├── tests                   # 单元测试
│   └── *.test.ts           # 测试文件
│
├── .env                    # 环境变量
├── .eslintrc.js            # ESLint 配置
├── .gitignore              # Git 忽略文件
├── index.html              # 入口 HTML
├── package.json            # 依赖配置
├── tsconfig.json           # TypeScript 配置
├── vite.config.ts          # Vite 配置
└── yarn.lock               # 依赖锁文件(如果使用 yarn)

如果上面没有选择路由,也可以单独安装

pnpm install vue-router@4

然后在src中建立router文件夹,文件夹中建立index.ts文件。内容如下:

import { createRouter, createWebHistory } from 'vue-router'
import HomeView from '../views/HomeView.vue'

const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  routes: [
    {
      path: '/',name: 'home',component: HomeView
    },
    {
      path: '/about', name: 'about', component: () => import('../views/AboutView.vue')
    }
  ]
})

export default router

然后在main.ts中加入

import router from './router'

在app.vue中加入 :

三、安装EelementUI及使用

1、安装

在package.json中同时存在dependencies 和 devDependencies。

dependencies中的模块将在生产环境中使用,而devDependencies中的模块仅在开发过程中使用

npm install <module> --save       #或yarn add <module>或  pnpm install <modulue>模块将被添加到dependencies。
npm install <module> --save-dev   #yarn add <module> --dev,模块将被添加到devDependencies
pnpm install element-plus

2、引入

1、全部引入
// main.ts
import { createApp } from 'vue'
import ElementPlus from 'element-plus'  //新增
import 'element-plus/dist/index.css'    //新增
import App from './App.vue'

const app = createApp(App)

app.use(ElementPlus)                    //新增
app.mount('#app')
2、按需引入

需要安装2个插件, 如果是使用pnpm构建的项目,则在项目中不可以npm, 均由pnpm代替。

pnpm install -D unplugin-vue-components unplugin-auto-import

然后在vite.config.ts中添加配置

import { fileURLToPath, URL } from 'node:url'

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueJsx from '@vitejs/plugin-vue-jsx'
import AutoImport from 'unplugin-auto-import/vite'     //新增1
import Components from 'unplugin-vue-components/vite'  //新增2
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'  //新增3

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    vueJsx(),
    AutoImport({  //新增4
      resolvers: [ElementPlusResolver()],
    }),
    Components({  //新增5
      resolvers: [ElementPlusResolver()],
    }),
  ],
  // 可以修改主机地址端口号等
  server:{
    host: "127.0.0.1",
    port: 3001
    open: true   //自动打开浏览器
  },
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  }
})

然后在页面中直接使用样式即可。有时候会出现错误提示,可以修改tsconfig.json的include项中添加“* * / *.d.ts”, 中间没有空格,这里的空格是防止typora。

3、Icon图标的安装

Element Plus中如果想使用Icon图标,不能直接使用,需要单独安装才能用。

pnpm install @element-plus/icons-vue

如果使用PyCharm中terminal中安装,先使用ctrl+c 退出。

全局注册, 在main.ts

import './assets/main.css'
import { createApp } from 'vue'
import { createPinia } from 'pinia'
import App from './App.vue'
import router from './router'
import * as ElementPlusIconsVue from '@element-plus/icons-vue'   //新增
const app = createApp(App)
//新增for语句
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
  app.component(key, component)
}
app.use(createPinia())
app.use(router)
app.mount('#app')

然后在页面中直接使用即可。
最后在工具中启动运行
在这里插入图片描述


http://www.niftyadmin.cn/n/5664506.html

相关文章

领导友好型数据展示:Java后端到可视化实战汇报

舒一笑的网站:www.shuyixiao.cloud 里面:面试八股文、BAT面试真题、工作内推、工作经验分享、技术专栏等等什么都有,欢迎收藏和转发。 优化数据呈现:打造领导友好的数据库汇报方案 在本次分享中,我将探讨一个完整的数据处理与可视化流程,旨在将复杂的系统日志信息转化为…

如何使用 LangChain 的内置工具和工具包:深入探讨与实践指南

如何使用 LangChain 的内置工具和工具包&#xff1a;深入探讨与实践指南 引言 在人工智能和自然语言处理领域&#xff0c;LangChain 已经成为一个强大而灵活的框架。它提供了丰富的工具和工具包&#xff0c;使开发者能够轻松构建复杂的 AI 应用。本文将深入探讨如何有效地使用…

一文搞懂 Flink JobGraph 的创建过程源码

Flink JobGraph 的创建过程 1 JobGraph创建的起点2 为StreamNode设置Hash值3 Hash值的应用4 设置StreamNode chain5 创建顶点6 创建边和中间结果集 在StreamGraph构建完毕之后会开始构建JobGraph&#xff0c;然后再提交JobGraph。 public JobExecutionResult execute(String jo…

vulnhub靶机:Fristileaks 详细过程

下载 下载地址&#xff1a;https://www.vulnhub.com/entry/fristileaks-13,133/ 修改网卡 网卡设置为nat模式&#xff0c;并修改mac地址为 08:00:27:A5:A6:76 信息收集 主机发现 arp-scan -l 发现靶机 IP 是 192.168.109.178 端口扫描 nmap -p- -A 192.168.109.178 目录…

传输层协议——udp/tcp

目录 再谈端口号 udp 协议 理解报头 udp特点 缓冲区 udp使用的注意事项 tcp协议 TCP的可靠性与提高效率的策略 序号/确认序号 窗口大小 ACK&#xff1a; PSH URG RST 保活机制 重传 三次握手(SYN) 四次挥手(FIN) 流量控制 滑动窗口 拥塞控制 延迟应答 捎带应答 面…

【java】scala ExecutorService停止线程池的简单案例

上代码&#xff1a; import org.scalatest.funsuite.AnyFunSuite import java.util.concurrent.{ExecutorService, Executors, TimeUnit}class ExecutorPoolTest extends AnyFunSuite {val threadPool: ExecutorService Executors.newFixedThreadPool(1)val job: Runnable n…

论文笔记:交替单模态适应的多模态表征学习

整理了CVPR2024 Multimodal Representation Learning by Alternating Unimodal Adaptation&#xff09;论文的阅读笔记 背景MLA框架实验Q1 与之前的方法相比&#xff0c;MLA能否克服模态懒惰并提高多模态学习性能?Q2 MLA在面临模式缺失的挑战时表现如何?Q3 所有模块是否可以有…

C++中类的创建和声明

目录 前言 一、类的概念 二、对象 前言 说实话&#xff0c;C和C语言有比较大的差别&#xff0c;在C语言中我们面向的是过程&#xff0c;即要怎么实现功能的过程&#xff0c;在C中&#xff0c;我们面向对象&#xff0c;将这些功能和函数封装起来&#xff0c;用到直接调用对象&…