问题提出

最近在做一个练习的小项目,由于要配合组成员的其它成员来搭建项目,大多掌握的技术栈都在vue2,用惯了vite来搭建(vite真香~),就想着来搭建一个vue2的项目。原本以为查下百度很快可以搭好,没想到折腾了一早上。。。。

⭐️文章结尾会给出我的package.json文件

搭建过程

1、初始化项目

vite提供了对应的npm命令可以创建各种框架的项目,但是vite在创建vue项目时,默认直接创建vue3,因此这里我们使用原生项目进行创建

1.1 创建项目

注意:这里vite的版本采用2.8.0的,最新的版本创建后续会出现问题

npm init vite@2.8.0

后续,安装如图

创建好项目后

// 1.进入项目
cd vite-vue2// 2.安装依赖
npm install// 3.启动项目
npm run dev

效果图如下:

1.2 安装vite对vue2支持的插件

  • 在vite-vue2安装:vite-plugin-vue2
// 注意:vite-plugin-vue2的版本为1.9.3
npm install vite-plugin-vue2@1.9.3 -D
  • 在根目录创建vite.config.js文件,来注册插件
import { defineConfig } from 'vite' // 动态配置函数
import { createVuePlugin } from 'vite-plugin-vue2'
import { resolve } from 'path'export default () =>defineConfig({plugins: [createVuePlugin()],server: {open: true, //自动打开浏览器port: 1567 //端口号},resolve: {// 别名alias: [{find: '@',replacement: '/src'}]}})

1.3 安装vue依赖

  • npm命令安装

写本文时,通过npm install vue安装会直接安装3.0版本的因此要指定好vue版本

npm install vue@2.x vue-template-compiler@2.x -S

1.4 修改项目文件结构

1.4.1 创建src目录

在项目根目录下创建src目录,然后把main.js移到src目录里

import Vue from 'vue'
import App from './App.vue'new Vue({render: h => h(App)
}).$mount('#app')
1.4.2 修改index.html

修改项目启动的入口文件

// index.html<script type="module" src="/src/main.js"></script>
1.4.3 创建App.vue文件

代码如下:

<template><div>Hello Vite Vue2</div>
</template>

1.5 运行一下项目

再次运行下项目检验一下之前配置有无问题

npm run dev

2、vue-router

2.1 安装

npm install vue-router@3.5.2 -S

2.2 新建router目录

2.2.1 创建路由表

在src目录下创建router目录,并在router目录下创建index.js文件和module目录,在module目录下创建home.js和index.js。这里采用分模块来存放路由表

// /src/router/module/home.js
export const home = [{path: '/home',meta: { title: '首页' },component: () => import('@/views/home/Index.vue')}
]
// /src/router/module/index.js
import { home } from './home'export const module = [...home]
// /src/router下index.js
import { module } from './module/index'
import VueRouter from 'vue-router'
import Vue from 'vue'// 使用VueRouter
Vue.use(VueRouter)const routes = [...module
]const router = new VueRouter({mode: 'history',base: '/',routes
})export default router
2.2.2 创建路由指向的页面组件

src 目录下创建 views 目录,用来存放页面组件。

src/views/home 目录下创建1个页面:Index.vue

<template><div>Home</div>
</template>

2.3 全局注册

2.3.1 在main.js里注册
import Vue from 'vue'
import App from './App.vue'
import router from './router/index.js'new Vue({router,render: h => h(App)
}).$mount('#app')
2.3.2 创建路由跳转标签

修改App.vue文件

<template><div id="app" class="app"><router-view></router-view></div>
</template>

3、vuex

vuex作为大型单页面的状态管理器,使用起来十分方便,在有mapState、mapMutation等语法糖的引入变得更加的简单,但当项目比较小的时候可以不引入,可能会变得臃肿起来,这里为了学习就引入进来了~

3.1 安装

npm install vuex@3.6.2 -S

3.2 新建vuex目录

src目录下创建store目录,并在store目录下创建index.js

// index.js
import Vue from 'vue'
import Vuex from 'vuex'Vue.use(Vuex) // 使用Vuex
export default new Vuex.Store({state: {count: 0},mutations: {increment(state) {state.count++}},actions: {},modules: {}
})

3.3 全局注册

import Vue from 'vue'
import App from './App.vue'
import router from './router/index.js'
import store from './store'new Vue({router,store,render: h => h(App)
}).$mount('#app')

4、组件库

这里组件库我采用了阿里推荐的ant-design-vue,版本采用1.x才兼容vue2

4.1 安装

npm install ant-design-vue@1.7.8 -S

4.2 按需引入

ps:在官网看半天还以为要引入babel-plugin-import 来按需引入,搞半天最后发现可以直接引入。。。。

在src建立目录plugin/antd目录,在下面创建index.js文件,代码如下:

import Vue from 'vue'import { Button, message } from 'ant-design-vue' // 按需引入
import 'ant-design-vue/dist/antd.css' // or 'ant-design-vue/dist/antd.less'// 挂载全局Message
Vue.prototype.$message = messageVue.use(Button)

4.3 在main.js全局注册

// main.js// 引入antd
import './plugin/antd'
new Vue({router,store,render: h => h(App)
}).$mount('#app')

4.4 在页面中使用

<template><div><a-button type="dashed" @click="onClick">Dashed</a-button></div>
</template><script>
export default {mounted() {},methods: {onClick() {this.$message.info('This is a normal message');}}
}
</script>

5、axios

本文会对axios做一个简单的封装。

5.1 安装

npm install axios -S

5.2 封装axios

在src创建http目录,在其下面创建request.jshome.js

// request.js
import axios from 'axios'
import { message } from 'ant-design-vue'
// 创建axios实例
// 创建请求时可以用的配置选项// 配后端数据的接收方式application/json;charset=UTF-8或者application/x-www-form-urlencoded;charset=UTF-8
const contentType = 'application/json;charset=UTF-8'const instance = axios.create({/*** 是否携带cookie,注意若携带cookie后端必须配置* 1.Access-Control-Allow-Origin为单一域名(具体到IP + port,用localhost貌似不行)* 2.需要带上响应头Access-Control-Allow-Credentials*/// withCredentials: true,timeout: 1000,baseURL: 'http://localhost:8000/api/v1',headers: {'Content-Type': contentType}
})
// axios的全局配置
instance.defaults.headers.post = {'Content-Type': 'application/x-www-form-urlencoded'
}
instance.defaults.headers.common = {'Auth-Type': 'company-web','X-Requested-With': 'XMLHttpRequest',token: 'sdfjlsdfjlsdjflsjflsfjlskd'
}// 添加请求拦截器(post只能接受字符串类型数据)
instance.interceptors.request.use(config => {const token = window.sessionStorage.getItem('token')if (token) {config.headers.Authorization = token}return config},error => {return Promise.reject(error)}
)
const errorHandle = (status, other) => {switch (status) {case 400:message.error('信息校验失败')breakcase 401:// @ts-nocheckmessage.error('认证失败')breakcase 403:message.error('token校验失败')breakcase 404:message.error('请求的资源不存在')breakdefault:message.error(other)break}
}// 添加响应拦截器
instance.interceptors.response.use(// 响应包含以下信息data,status,statusText,headers,configres => {if (res.data && res.data.code !== 0 && !(res.data instanceof Blob)) {message.error(res.data.msg || '服务器出错!')}// 请求通用处理return res.data},err => {// message.error(err)const { response } = errif (response) {errorHandle(response.status, response.data)return Promise.reject(response)}message.error('请求失败')return true}
)export default instance
import request from './request'export default {getList(model) {return request({url: '/theme/list',method: 'post',data: model})},
}

5.3 在页面中使用

<script>
import $http from '@/http/home.js'
export default {mounted() {},methods: {async onSubmit(){const res = await $http.getList({});console.log(res)}}
}
</script>

总结

以上就是我用vite搭建vue2项目的一个全过程啦。希望对大家搭建项目有所帮助,如果有帮助的话,欢迎给文章点个赞

vite搭建vue2项目相关推荐

  1. Vite 搭建 Vue2 项目(Vue2 + vue-router + vuex)

    Vite 先让我说几句废话. 在写本文时 Vite 没有提供 Vue2 的创建方式. 相信有些开发者还没开始学 Vue3,但又想尝尝 Vite.那可以参考本文的进食方式. 如果心急的话,"0 ...

  2. Vite创建Vue2项目

    文章目录 1. 输入项目名称 2. 选择框架 3. 选择不同 4. 项目创建完成 5. 项目结构 6. 安装插件 7. 使用插件 8. 安装vue 9. 修改项目结构 10. 启动项目 在 Vite创 ...

  3. 搭建react项目 搭建ts react项目 使用vite搭建react项目

    创建react 项目 注意: 网上有一些生成react 的方法,但是也有一些是过时的. 使用官方脚手架creact-react-app 全局安装 creact-react-app 这个脚手架 这个脚手 ...

  4. 使用vite搭建Vue3项目

    全局安装create-vite-app # yarn yarn global add create-vite-app@1.18.0 # npm npm i -g create-vite-app@1.1 ...

  5. vite搭建完整项目

    目录 1.开始 | Vite 官方中文文档 (vitejs.dev)  点击进入vite官网. 2.scss安装 3.安装路由 安装 | Vue Router (vuejs.org) 1.开始 | V ...

  6. 使用Vite 搭建高可用的服务端渲染SSR工程

    在非常早期的 Web 开发中,大家还在使用 JSP 这种古老的模板语法来编写前端的页面,然后直接将 JSP 文件放到服务端,在服务端填入数据并渲染出完整的页面内容,可以说那个时代的做法是天然的服务端渲 ...

  7. 从零开始搭建vue2+vant2项目

    前言:最近发现一个比较不错的移动端UI组件库vant2,打算搭建一个项目来学习一下,以防忘记,记录一下搭建过程. 1. 使用npm创建项目 执行 "vue create 项目名" ...

  8. vite 搭建 Vue3.0项目

    vite 搭建 Vue3.0项目 vue3.0+TS+AntDesignVue项目 vite 初始化vite项目 配置项目 配置typescript 配置Vue Router 配置Vuex 配置Ant ...

  9. 使用vue3 +vite + typeScript + elementPlus搭建一个项目脚手架

    使用vue3 + vite + elementPlus搭建一个项目脚手架 这篇文章就教大家如何使用vue3+vite+ts+element-plus搭建一个项目,步骤详细,献给不爱看文档的诸位,希望这 ...

最新文章

  1. 102. Leetcode 198. 打家劫舍 (动态规划-打家劫舍)
  2. 注册了一个域名WELAI.NET
  3. 关于能否命令Scrum团队的对话
  4. C#小游戏—钢铁侠VS太空侵略者
  5. android拦截短信获取短信内容,《英雄联盟手游》先锋测试招募说明:仅安卓用户...
  6. 控制属性修改时间,控制时间,联合主键
  7. Mysql学习总结(56)——MySQL用户管理和权限设置
  8. php四则运算出题器_PHP实现的简单四则运算计算器功能示例
  9. 你知道什么是 MySQL 的模糊查询?
  10. (转)SQL Server数据库状态监控 - 作业状态
  11. 苹果HomeKit智能家居战略藏野心:欲实现下一次颠覆
  12. 今日复习的linux命令
  13. 水晶报表基本使用方法
  14. HAL库控制PS2手柄
  15. CSDN日报190910:程序员都秃头,商务个个是人精
  16. 花生棒虚拟服务器,花生棒 开服务器
  17. PCB常见的几种钻孔
  18. 07:计算多项式的值
  19. 一键解锁,宿舍管理隐藏技能
  20. 十个英语口语学习网站

热门文章

  1. caj转换成word工具怎么使用?
  2. ARM 汇编指令 MOV32用法
  3. ES6 —— 3、async-await、微任务和宏任务、class、proxy(代理)
  4. MySQL的month()函数方法对应得Oracle方法
  5. mysql用month()函数取月份时,不足10的前面补0
  6. 【愚公系列】2022年02月 wireshark系列-数据抓包分析之DNS协议
  7. 大数据挖掘与分析平台整体解决方案
  8. 《爱比克泰德论说集》
  9. matlab中linprog函数解线性规划方程
  10. PLSQL 使用ODBC 数据源导入来自SQLSERVER的数据