Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Vite2.0搭建Vue3.0项目应用实战

Vite2.0搭建Vue3.0项目应用实战

作者头像
江一铭
发布于 2022-06-16 03:04:59
发布于 2022-06-16 03:04:59
42600
代码可运行
举报
文章被收录于专栏:技术社区技术社区
运行总次数:0
代码可运行
前言

最近Vite2.0很火热,说是要替代webpack作为下一代前端构建工具。上个周末搬完房子仔细研究了一下,照着我们目前的项目环境,尝试搭建了一套基础环境,简单了解了Vite2.0的配置,以及各种库的集成。这里对Vite2.0不做过多的介绍,主要优点就是

环境配置

一条命令创建一个空的vite项目

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
npm init @vitejs/app vite-project

在终端,输入以上命令,会让你选择模板。

看文章标题我们就知道,我们选择的是vue的模板,

这是创建后的文件目录结构,和vue-cli 脚手架类似,配置文件都存放一个文件,叫做vite.config.js

默认内容是

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
// https://vitejs.dev/config/
export default defineConfig({
  plugins: [vue()]
})

在项目根目录运行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
npm run dev

默认在本地3000端口启动服务。 所以使用浏览器访问 http://localhost:3000/ 就能看到如下的欢迎界面

集成Element

因为我们使用的Vue3.0,所以要使用Element-ui的话就必须要使用,Element Plus 这是一个使用vue3来编写的vue组件库, 官方地址 要集成到项目中也很简单

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
npm install element-plus --save

运行以上命令先安装element-plus

然后在入口文件main.js中引入相应的库

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import ElementPlus from 'element-plus'
import 'element-plus/lib/theme-chalk/index.css'

然后将ElementPlus挂载到Vue的原型上,并将主题的大小设置为 small

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
createApp(App).use(ElementPlus,{size: 'small'}).mount('#app')

这样引用后就可以全局使用ElementPlus,稍微测试一下

找到HelloWorld.vue组件, 添加一行代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<el-button type="primary">查询</el-button>

报错后,无需刷新,查看页面

生效了。集成ElementPlus IS DONE !

集成vue-router

Vite脚手架生成的vue项目,目前是没有集成vue-router的,没关系,自己动手丰衣足食。说干就干

第一步

安装vue-router 这里注意一下,一点要安装vue-router的4.x版本,要不然无法和Vue3.x搭配使用。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
npm install vue-router@4 --save

   
   1
第二步

创建 /src/router/index.js 写入以下内容

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import { createRouter, createWebHashHistory } from 'vue-router'
const router = new createRouter({
	history:createWebHashHistory(),
	routes:[
		{
			path:'/',
			redirect:'/home'
		},
		{
			path:'/home',
			component:() => import('../views/Home.vue')
		},
    {
			path:'/user',
			component:() => import('../views/Users.vue')
		},
	]
})
router.beforeEach((to,from,next) => {
	console.log(to,from,111);
	next();
})
export default router;

创建了router对象,是hash模式的路径, 主要配置了二个路径, 分别是

  • /home 指向 /src/views/Homme.vue
  • /user 指向 /src/views/User.vue
第三步

创建 views/Homme.vueviews/Homme.vue 二个组件。

创建路由后,要补充创建 views/Homme.vueviews/Homme.vue 二个组件。 内容分别是

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<template>
 My Home Page
</template>
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<template>
 My Users Page
</template>
第四步

修改 App.vue的内容

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<template>
   <div id='nav'>
    <router-link class="link" to='/home'>Home</router-link> |
    <router-link class="link" to='/user'>User </router-link>
  </div>
  <div>
    <img alt="Vue logo" src="./assets/logo.png" />
  </div>
  <router-view></router-view>
</template>
第五步

main.js中引入并挂载router

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// ...
import router from "./router";
createApp(App)
  .use(ElementPlus,{size: 'small'})
  .use(router)
  .mount('#app')
// ...

重新启动项目,访问 http://localhost:3000/

预览效果如下:

集成less

在vue中可以这样使用less

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<style lang="less">
.page-name {
  color: red;
  span {
    color: blue;
  }
}
</style>

但直接使用会报错,如下图

需要在项目中安装less

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
npm i less --save

   
   1

安装完成就不报错了。

代理配置

vite.config.js中配置 将请求地址以 /api开头的地址映射到 http://jsonplaceholder.typicode.com/, 并移除 /api

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
// https://vitejs.dev/config/
export default defineConfig({
  plugins: [vue()],
  server: {
    proxy: {
      '/api': {
        target: 'http://jsonplaceholder.typicode.com/',
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/api/, ''),
      },
    },
  },
})
集成axios

在vue中如果我们要与后端交互,就要使用http相关的库,如axios 下面是封装集成axiso到vite项目中

第一步

安装axios

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
npm i axios --save

创建 src/util/http.js, 内容如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import axios from "axios";
var service = axios.create({
  // baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url
  // withCredentials: true, // send cookies when cross-domain requests
  timeout: 5000, // request timeout
  responseType: "json",
  headers: {
    Accept: "application/json",
    "Content-Type": "application/json",
    Authorization:
      "Bearer eyJrIjoiZ1BkdjFuVWhpVFJYVDFnNlI4aWVkNjloM3hGSDRUbXkiLCJuIjoidGVzdCIsImlkIjoxfQ=="
  }
});
// 添加请求拦截器
service.interceptors.request.use(
  function(config) {
    // 在发送请求之前做些什么
    return config;
  },
  function(error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  }
);
// 添加响应拦截器
service.interceptors.response.use(
  function(response) {
    // 对响应数据做点什么
    return response;
  },
  function(error) {
    // 对响应错误做点什么
    return Promise.reject(error);
  }
);
export default service;
第二步

创建 server/user.js 一个接口示例 获取用户列表 内容如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import fetch from '../util/http'
export function getUser () {
  return fetch({
    url: '/api/users',
    methods: 'get'
  })
}
第三步

修改User.vue

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<template>
 My User Page
<el-form-item>
  <el-button type="primary" @click="onSubmit">查询</el-button>
</el-form-item>
<el-row>
  <el-col :span="12" :offset="6" >
    <el-table :data="state.tableData" style="width: 100%" v-loading="state.loading">
      <el-table-column prop="name" label="用户名" width="180"></el-table-column>
      <el-table-column prop="website" label="网站" width="180"></el-table-column>
      <el-table-column prop="phone" label="手机"></el-table-column>
      <el-table-column prop="email" label="邮箱"></el-table-column>
    </el-table>
  </el-col>
</el-row>
</template>
<script setup>
import {getUser} from '../server/user'
import { reactive } from 'vue'
const state = reactive({
  loading:false,
  tableData: []
})
const onSubmit = () => {
  state.loading = true
  getUser().then(res => {
    state.loading = false
    state.tableData = res.data
    console.log(state.tableData)
  })
}
</script>

预览效果

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-08-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【愚公系列】《循序渐进Vue.js 3.x前端开发实践》044-Element Plus入门
在现代前端开发中,用户界面的设计和体验越来越受到重视。为了提高开发效率和界面美观性,使用 UI 组件库已成为许多开发者的首选。Element Plus 作为一款基于 Vue 3 的组件库,为开发者提供了丰富而灵活的 UI 组件,帮助我们快速构建高质量的应用界面。
愚公搬代码
2025/06/02
1460
【愚公系列】《循序渐进Vue.js 3.x前端开发实践》044-Element Plus入门
手把手教你搭建Spring Boot+Vue前后端分离
前后端分离是目前互联网开发中比较广泛使用的开发模式,主要是将前端和后端的项目业务进行分离,可以做到更好的解耦合,前后端之间的交互通过xml或json的方式,前端主要做用户界面的渲染,后端主要负责业务逻辑和数据的处理。
闫同学
2022/10/31
7.9K0
手把手教你搭建Spring Boot+Vue前后端分离
Vue3+Element-plus前端学习笔记-巨长版
「写好的代码」:Lvan826199/mwj-vue3-project: vue3-vite构建的一个前端模版 (github.com)
梦无矶小仔
2024/03/25
8480
Vue3+Element-plus前端学习笔记-巨长版
【Vue3】用Element Plus实现列表界面
哈喽大家好,本期我们用Element Plus实现列表界面,我们先用vue+vite创建一个vue项目,创建项目可以参考:利用vite创建vue3项目噢~
颜颜yan_
2023/03/28
3.2K0
【Vue3】用Element Plus实现列表界面
Element Plus使用
愷龍
2024/07/17
1960
Element Plus使用
Vue3+ElementPlus+Axios实现前后端分离demo
项目创建完成后自动进入我们创建的demodemo项目中,我们点击依赖,点击右上角安装依赖,分别搜索axios、element-plus并安装。安装后让如图所示
Python研究所
2022/06/17
2.7K0
Vue3+ElementPlus+Axios实现前后端分离demo
使用vite搭建vue3.0+ts+element plus+sass项目
根据步骤执行上图的提示操作 cd project-name yarn yarn dev
前端小tips
2021/12/06
1.3K0
使用vite搭建vue3.0+ts+element plus+sass项目
vite2.0+vue3移动端项目实战
一.涉及技术点 vite版本 vue3 ts 集成路由 集成vuex 集成axios 配置Vant3 移动端适配 请求代理 二.步骤 vite+ts+vue3只需要一行命令 npm init @vitejs/app my-vue-app --template vue-ts 配置路由 npm install vue-router@4 --save 在src下新建router目录,新建index.ts文件 import { createRouter, createWebHashHistory, RouteR
落落落洛克
2021/03/08
8480
vue2.0+Element-ui实战案例
我们将会选择使用一些 vue 周边的库vue-cli, vue-router,axios,moment,Element-ui搭建一个前端项目案例,后端数据接口,会使用json-server快速搭建一个本地的服务,方便对数据的增删改查,
小周sir
2019/09/23
2.4K0
vue2.0+Element-ui实战案例
Vue3.0商店后台管理系统项目实战-路由
侧边栏导航 vue3搭配Element Plus框架使用 Element Plus基于 Vue 3,面向设计师和开发者的组件库 文档:https://element-plus.gitee.io/zh-CN/
王小婷
2022/10/28
7460
Vue3.0商店后台管理系统项目实战-路由
一个基于vite构建的vue3+pinia+ts+elementUI plus的初始化开箱即用的项目模版
Vite 需要 Node.js 版本 >= 12.0.0。然而,有些模板需要依赖更高的 Node 版本才能正常运行,当你的包管理器发出警告时,请注意升级你的 Node 版本。
用户6297767
2023/11/21
9370
一个基于vite构建的vue3+pinia+ts+elementUI plus的初始化开箱即用的项目模版
Vue3 Element Plus WindiCSS 项目开发环境搭建
MVVM 是 Model-View-ViewModel 的简写,它本质上是 MVC 的改进版。MVVM 将其中的 View 的状态和行为抽象化,并且将视图 UI 和业务逻辑分开。 (1)M:即 Model(模型),包括数据和一些基本操作。 (2)V:即 View(视图),指页面渲染结果。 (3)VM:即 View-Model,指模型与视图间的双向操作(无须开发者干涉)。
耕耘实录
2023/12/18
4360
做个开源博客学习Vite2 + Vue3 (四)实现博客功能 管理类文件结构config设置路由设置网页入口代码入口首页、博文列表表单 发布博文博文内容 + 讨论博文分组博文列表,编
Composition API,就是组合API的意思,那么是不是应该把js代码分离出来,做成独立的管理类的形式呢?
用户1174620
2021/04/26
8920
做个开源博客学习Vite2 + Vue3 (四)实现博客功能
    




管理类文件结构config设置路由设置网页入口代码入口首页、博文列表表单 发布博文博文内容 + 讨论博文分组博文列表,编
IntersectionObserver交叉观察器
前段时间内部系统业务需要,用 IntersectionObserver实现了table中的上拉数据加载,如果有类似需求,希望本文能带给你一点思考和帮助
Maic
2022/07/28
9590
IntersectionObserver交叉观察器
Vite 搭建 Vue2 项目(Vue2 + vue-router + vuex)
相信有些开发者还没开始学 Vue3,但又想尝尝 Vite。那可以参考本文的进食方式。
德育处主任
2022/04/15
7.6K1
Vite 搭建 Vue2 项目(Vue2 + vue-router + vuex)
Vue3.0商店后台管理系统项目实战-axios的封装
Vue3.0官方文档:https://cn.vuejs.org/ Element Plus文档:https://element-plus.gitee.io/zh-CN/
王小婷
2022/10/31
1.7K0
Vue3.0商店后台管理系统项目实战-axios的封装
创建Vue3项目
一,使用Vue图形界面方式创建项目,打开控制台,输入vue ui 若想使用vue的UI界面来创建项目,需将vue升级到 3.0以上的版本。不然还是通过vue create 项目名 创建项目吧。 //下载vue最新版 npm i -g @vue/cli 或者 cnpm install -g @vue/cli //打开ui界面 vue ui 二,找到Vue 项目管理器,选择新建项目,选择需要创建的文件目录,输入项目名称(尽量小写)创建,这里预设选择的是Vue3。 三,选择安装
张苹果
2022/11/07
1.5K0
创建Vue3项目
我用 Vue3+Ts+Vite2 写了一个美女小黄站
首先使用以下命令创建项目 yarn create @vitejs/app vue3-ts-vite2 --template vue-ts vite.config.js import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import path from 'path' // https://vitejs.dev/config/ export default defineConfig({ plugins: [
公众号---人生代码
2021/04/22
4.4K0
【实战技巧】Vue3+Vite工程常用工具的接入方法
Vue3 正式版已经发布一段时间了,和 Vue3 更配的工具 Vite 也已经投入使用了,本文整理了如何将一些常用的工具整合到项目中。
一尾流莺
2022/12/10
2.1K0
Vue3.0商店后台管理系统项目实战-vue3搭配Element Plus框架使用
侧边栏导航 vue3搭配Element Plus框架使用 Element Plus基于 Vue 3,面向设计师和开发者的组件库 文档:https://element-plus.gitee.io/zh-CN/
王小婷
2022/10/28
2.2K0
Vue3.0商店后台管理系统项目实战-vue3搭配Element Plus框架使用
推荐阅读
相关推荐
【愚公系列】《循序渐进Vue.js 3.x前端开发实践》044-Element Plus入门
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验