vite构建vue3踩坑(路由params传参失效、tailwindcss失效等问题记录)

vite创建vue3

npm create vue@latest

构建时自行选择ts、pinina等配置(此创建指令 项目配置较为完整)

想构建其他模板(react、微信小程序) npm init vite@latest 构建时自行选择基础模板

使用less 引入全局变量

安装less即可 vite已集成less-loader

npm install less -g

Vite中,对less的全局变量进行配置 新建assets下新建main.less

在vite.config.ts 修改css配置

css 复制代码
css: {
    // 预处理器配置项
    preprocessorOptions: {
      less: {
        //注入全局样式
        additionalData: `@import '/src/assets/main.less';`,
      },
    },
    }

main.ts引入main.less即可,vue文件中,便能直接访问到main.less,定义的变量等

使用rollup-plugin-visualizer

打包体积分析插件

css 复制代码
cnpm i rollup-plugin-visualizer -D

基本用法 vite.config.ts 配置plugin

arduino 复制代码
import { visualizer } from "rollup-plugin-visualizer";
export default defineConfig({
  plugins: [
    vue(),
    vueJsx(),
    visualizer({
      open: true, //在默认用户代理中打开生成的文件
      gzipSize: true, // 收集 gzip 大小并将其显示
      brotliSize: true, // 收集 brotli 大小并将其显示
      filename: "stats.html", // 分析图生成的文件名
    }),
  ],
  

打包生成stats.html

用Autoprefixer 配置css样式补全

Autoprefixer是一款基于PostCSS插件,用于解析CSS并使用Can I Use中的值向CSS规则添加供应商前缀 。它是 Google 推荐的,并在Twitter和阿里巴巴中使用。

可以实现css3代码自动补全,也可以运用到sass、less中

npm i autoprefixer

去vite.config.ts 配置css的postcss选项

javascript 复制代码
export default defineConfig({
//补全css前缀 浏览器兼容
  css: {
    postcss: {// 关键代码
      plugins: [
        require("tailwindcss"),
        require("autoprefixer")({// 自动添加前缀 的浏览器
          overrideBrowserslist: [
            "Android 4.1",
            "iOS 7.1",
            "Chrome > 31",
            "ff > 31",
            "ie >= 8",
            "> 1%",
            //'last 2 versions', // 所有主流浏览器最近2个版本
          ],
          grid: true,
        }),
      ],
    },
   }
  })`
 

使用Atomic CSS(原子 CSS) 引入tailwindcss

tailwindcss 是一个 CSS 框架 ,主要特点是 utility class ,实现了原子化 css :1个class代表1个css 属性。

中文安装文档链接 www.tailwindcss.cn/docs/instal...

go 复制代码
npm i -D tailwindcss postcss autoprefixer 
安装依赖

npx tailwindcss init -p
创建`postcss.config.js`文件,这里的配置主要是添加`tailwindcss`的插件,这样你编写的css才会被`tailwindcss`处理;(或者在vite.config.ts配置)
创建`tailwind.config.js`文件,主要进行扫描规则、主题、插件等配置。

修改生成的tailwind.config.js

css 复制代码
module.exports = {
  content: ['./index.html', './src/**/*.{vue,js,ts,jsx,tsx}'],
  theme: {
    extend: {},
  },
  plugins: [],
}

!注意!这里只是配置了扫描内容,去扫描 src目录下所有以vue/js/ts/jsx/tsx 结尾的文件。 而TailwindCSS本身是一个PostCSS插件,需要配置postcss,不然css不会被tailwindcss处理!

去postcss.config.js或者vite.config.ts

css 复制代码
postcss: {// 关键代码
      plugins: [
        require("tailwindcss")
      ],
    },

去样式文件 引入依赖样式

less 复制代码
@tailwind base;
@tailwind components;
@tailwind utilities;

使用

ini 复制代码
<h1 class=" bg-blue-500">tailwindcss</h1>

效果

params传参失效

不是指页面刷新数据丢失问题,这种结合localStorage存储即可,有现成插件

使用name和params传参,发现获取不到params,打印为空。 官方已不推荐params传参,会刷新页面丢失,还得耗费心力处理。

**解决方案:少量数据改query传递,复杂数据用pinia或者vuex。或者History API 方式传递和接收(state) 参考文章

相关推荐
A923A13 分钟前
【Vue3大事件 | 项目笔记】第五天
前端·vue.js·笔记·前端项目
暖阳常伴14 分钟前
全栈vue/react+node.js,云服务器windows部署全流程
vue.js·react.js·node.js
网络点点滴14 分钟前
组件通信-provide和inject
javascript·vue.js·ecmascript
天天向上102421 分钟前
vue2 el-table使用css的方式实现列表自动滚动
css·vue.js·elementui
英俊潇洒美少年10 小时前
react如何实现 vue的$nextTick的效果
javascript·vue.js·react.js
青柠代码录10 小时前
【Vue3】Vue Router 4 路由全解
前端·vue.js
蜡台11 小时前
element-ui 2 el-tree 内容超长滚动条不显示问题
前端·vue.js·elementui·el-tree·v-deep
daols8813 小时前
vue甘特图 vxe-gantt 如何实现双击连接线自动删除线功能(含二次确认)
vue.js·甘特图·vxe-gantt
隔壁小邓13 小时前
前端Vue项目打包部署实战教程
前端·javascript·vue.js
angerdream14 小时前
最新版vue3+TypeScript开发入门到实战教程之watch详解
javascript·vue.js