vue3使用vite搭建的项目需要安装的插件/配置方式

 更新时间:2024年03月09日 09:23:08   作者:sqwu  
这篇文章主要介绍了vue3使用vite搭建的项目需要安装的插件/配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

1.创建项目

项目名称是myProject

vue create myProject

2.vetur报错调整

由于vue3引入组件后不用在components中声明,vetur插件会报错

解决办法:vscode设置 -》 搜索vetur -》 找到下面这个选项,把他关掉。然后重新打开文件,发现没有报错了

3.vite2使用eslint校验

推荐使用这一篇的eslint配置方案👉【vite】vite项目从0开始配置eslint

不使用上一篇的话,就按下面的步骤来~

1.安装eslint

执行命令npx eslint --init,按照以下选项配置依赖,会顺带下载四个依赖

2.下面开始适配vue3

打开.eslinttrc.js

1.删除extends中的"plugin:vue/essential"

2.删除plugins中的"vue"

3.在extneds中添加'plugin:vue/vue3-recommended'

4.安装pnpm i -D prettier eslint-config-prettierpnpm i eslint-plugin-prettier

5.在extends里面加一句:'plugin:prettier/recommended'

4.使用vue-router

1.安装

npm install vue-router@4

2.在src下创建目录router/index.ts

注意引入方式import * as VueRouter from 'vue-router'。。

直接import VueRouter from 'vue-router'会报错

Uncaught SyntaxError: The requested module ‘/node_modules/.vite/deps/vue-router.js?v=8dd0ce81’ does not provide an export named ‘default’import * as VueRouter from ‘vue-router’

import * as VueRouter from 'vue-router'
const routes = [
  {
    path: '/about',
    name: 'about',
    component: () => import('../views/About/index.vue')
  }
]
// 创建路由实例
const router = VueRouter.createRouter({
  history: VueRouter.createWebHashHistory(), // hash模式
  routes
})
export default router

3.在main.ts中应用router

import { createApp } from 'vue'
import App from './App.vue'

import router from './router'

const app = createApp(App)

// 使用路由
app.use(router)

app.mount('#app')

5.使用vuex

1.安装

npm install vuex@next --save

2.在src下创建目录

store
    ├── index.js          # 我们组装模块并导出 store 的地方
    ├── actions.js        # 根级别的 action
    ├── mutations.js      # 根级别的 mutation
    └── modules
        ├── cart.js       # 购物车模块
        └── products.js   # 产品模块

6.使用vant4

1.安装

npm i vant

2.安装插件实现按需引入组件的样式

// 1.安装插件依赖
npm i vite-plugin-style-import@1.4.1 -D

// 2.在vite.config.ts使用插件
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import styleImport, { VantResolve } from 'vite-plugin-style-import'
// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    styleImport({
      resolves: [VantResolve()]
    })
  ]
})

// 3.在页面中使用组件
<template>
    <van-button>登录</van-button>
</template>
<script lang="ts" setup>
import { Button as VanButton } from 'vant'
</script>

7.使用less

1.安装

npm install  less less-loader -d

8.移动端将px转为rem

1.安装插件

// 是postcss的插件,用于将像素单元生成rem单位。
npm install postcss-pxtorem -D
// 配置可伸缩布局方案,主要是将1rem设为viewWidth/10
npm install amfe-flexible -S

2.在main.ts中

import 'amfe-flexible'

3.在根目录下创建postcss.config.js

// eslint-disable-next-line no-undef
module.exports = {
  plugins: {
    autoprefixer: {
      overrideBrowserslist: [
        'Android 4.1',
        'iOS 7.1',
        'Chrome > 31',
        'ff > 31',
        'ie >= 8',
        'last 10 versions'
      ],
      grid: true
    },
    // 把px单位换算成rem单位
    'postcss-pxtorem': {
      rootValue: 75, // 换算的基数(设计图750的根字体为75)
      propList: ['*'], // *代表将项目中的全部进行转换,单个转换如width、height等
      unitPrecision: 5
    }
  }

9.使用axios

1.安装

npm install axios -S
npm install qs  -S

2.在utils目录下创建http.js,根据项目要求配置请求/响应拦截器

import Axios, { AxiosRequestConfig } from 'axios'
import { Toast } from 'vant'

// 设置请求头
Axios.defaults.headers.post['Content-Type'] = 'application/json'
// 设置超时
Axios.defaults.timeout = 6 * 1000

export default function $http({ url, method, params }: AxiosRequestConfig) {
  return new Promise((resolve, reject) => {
    const _axiosConfig = {
      url,
      method,
      params
    }
    Axios(_axiosConfig)
      .then(res => {
        resolve(res)
      })
      .catch(err => {
        reject(err)
      })
  })
}

3.在src目录下创建api目录,用来放接口请求

// api/common.ts
import $http from '../utils/http'
const url = 'https://dev.ylzpay.com/api/follow-up/app/api'
export function getDictInfo(params: unknown) {
  return $http({
    url,
    params
  })
}

// api/index.ts
export * from './common'

10.配置请求代理

// 在vite.config.ts
server: {
    port: 8077,
    open: true, // 自动打开
    base: './',
    proxy: {
      '/app/api': {
        target: 'https://dev.ylzpay.com/api/follow-up/app/api',
        changeOrigin: true, // 打开代理
        rewrite: path => path.replace('/app/api', '')
      }
    }
  }

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。 

相关文章

  • vue如何实现本项目页面之间跳转

    vue如何实现本项目页面之间跳转

    这篇文章主要介绍了vue如何实现本项目页面之间跳转,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • Vue父组件触发子组件中的实现方法

    Vue父组件触发子组件中的实现方法

    文章总结:介绍了两种实现父组件触发子组件方法的常用方法:通过ref访问子组件实例并调用方法,以及使用自定义事件触发子组件方法
    2025-01-01
  • element多个表单校验的实现

    element多个表单校验的实现

    在项目中,经常会遇到表单检验,在这里我分享在实际项目中遇到多个表单同时进行校验以及我的解决方法,感兴趣的可以了解一下
    2021-05-05
  • springboot之springboot与netty整合方案

    springboot之springboot与netty整合方案

    这篇文章主要介绍了VUE之关于store状态管理核心解析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • Vuejs使用addEventListener的事件如何触发执行函数的this

    Vuejs使用addEventListener的事件如何触发执行函数的this

    这篇文章主要介绍了Vuejs使用addEventListener的事件触发执行函数的this方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • 解决ant-design-vue中menu菜单无法默认展开的问题

    解决ant-design-vue中menu菜单无法默认展开的问题

    这篇文章主要介绍了解决ant-design-vue中menu菜单无法默认展开的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • Vue3 页面,菜单,路由的使用

    Vue3 页面,菜单,路由的使用

    这篇文章主要介绍了Vue3之 页面,菜单,路由的使用,文章围绕Vue3页面,菜单,路由相关资料展开详细内容,需要的朋友可以参考一下
    2021-11-11
  • vue3项目打包成apk(android)详细图文教程

    vue3项目打包成apk(android)详细图文教程

    Vue本身是一个构建用户界面的渐进式框架,不能直接打包成APK文件,但是你可以使用工具将Vue应用打包成一个可以在Android设备上安装的APK文件,这篇文章主要给大家介绍了关于vue3项目打包成apk(android)的相关资料,需要的朋友可以参考下
    2024-05-05
  • 详解VueRouter 路由

    详解VueRouter 路由

    本文详细介绍了VueRouter 路由的概念、规则、基础等相关内容,文中运用大量的图片进行讲解,感兴趣的小伙伴可以看一看这篇文章
    2021-08-08
  • Vue实现左右菜单联动实现代码

    Vue实现左右菜单联动实现代码

    这篇文章主要介绍了Vue实现左右菜单联动实现代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08

最新评论