【Vue3】Vue3+Element-Plus+Vite+Tailwindcss 随记

vue系列



1. Elemet-Plus

1.1 elemet-plus 输入框无法输入

使用 element-plus 的表单 el-form 套用el-input 时,el-input 无法输入。

解决:

// element plus 官方文档
// 数据绑定不能用错
el-form  用 :model
el-input 用 v-model 不能用 :model

1.2 element-plus修改主题色

前提(依赖):1.需要安装sass 2.ts环境下需要@types/node
开始!

  1. 新建一个样式文件用于合并你的变量和 element-plus 的变量
    例如:assets/styles/element.scss 在这里插入图片描述
    内容为:
@forward 'element-plus/theme-chalk/src/common/var.scss' with (
  $colors: (
    'primary': (
      'base': black,
    ),
  ),
);

html, body, #app {
    width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
}
  1. 修改 vite.config.ts 如下
// https://vitejs.dev/config/
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import path from 'path'

// element-plus 按需引入插件
import ElementPlus from 'unplugin-element-plus/vite'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'

// https://vitejs.dev/config/
export default defineConfig({
    resolve: {
        alias: {
            // 资源路径
            '~/': `${path.resolve(__dirname, 'src')}/`,
        },
    },
    css: {
        preprocessorOptions: {
            scss: {
                // 添加修改主题色样式
                additionalData: `@use "~/assets/styles/element.scss" as *;`,
            },
        },
    },
    plugins: [
        vue(),
        // element-plus按需引入
        ElementPlus({
            // 引入的样式的类型,可以是css、sass、less等,
            useSource: true
        }),
        AutoImport({
            resolvers: [ElementPlusResolver({
            	// 使用预处理sass样式, 不写读不到样式文件
				importStyle: "sass",
            })],
        }),
        Components({
            resolvers: [ElementPlusResolver({
				// 使用预处理sass样式, 不写读不到样式文件            
				importStyle: "sass",
            })],
        })
    ]
})

2. Vue3

2.1 setup 语法糖

vue3 中 script 标签中的setup 是什么意思

<script lang="ts" setup>
</script>

解决:

实际上是一种语法糖

使用前:

<script lang="ts">
import axios from "axios";
export default {
    setup() {
           // 初始化状态和衍生值
        const state: any = reactive({
            form: {
                username: "",Ï
                password: "",
            },
            lowerCaseUsername: computed(() =>
                state.form.username.toLowerCase()
            ),
        });
    }
}
</script>

使用后:

<script lang="ts" setup>
import axios from "axios";
const state: any = reactive({
    form: {
        username: "",
        password: "",
    },
    lowerCaseUsername: computed(() => state.form.username.toLowerCase()),
});
</script>

注:vscode 中的 volar插件 带有vue3模板提示,强烈建议使用。

3. Tailwindcss

3.1 项目引入

// 1. 使用的是像 React 或 Vue 这样的 JavaScript 框架
// 例: src/main.ts
import "tailwindcss/tailwind.css"

// 2.使用 @tailwind 指令注入 Tailwind 的基础 (base)
// 例:src/index.css
@tailwind base;
@tailwind components;
@tailwind utilities;

// 3.使用的是 postcss-import(或背后使用它的工具,例如 Webpacker for Rails),请使用我们的导入而不是 @tailwind 指令来避免在导入任何其他文件时出现问题
// 例:src/index.scss
@import "tailwindcss/base";
@import "tailwindcss/components";
@import "tailwindcss/utilities";

3.2 自定义颜色变量用于与element-plus的主题色同步

// tailwind.config.js
module.exports = {
    purge: ["./index.html", "./src/**/*.{vue,js,ts,jsx,tsx}"],
    //配置 Tailwind 来移除生产环境下没有使用到的样式声明
    //在您的 tailwind.config.js 文件中,配置 purge 选项指定所有的 pages 和 components 文件,使得 Tailwind 可以在生产构建中对未使用的样式进行摇树优化。
    darkMode: false, // or 'media' or 'class'
    theme: {
        extend: {
            colors: {
            	// 使用element-plus的颜色变量
                primary: 'var(--el-color-primary)',
            },
        },
    },
    variants: {
        extend: {},
    },
    plugins: [],
    important: true,
};
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
个人博客网站是一个用于展示个人博客内容的网站。其中,Vue3是一个流行的JavaScript框架,它提供了一种简洁和高效的方法来构建用户界面。Vue3采用了一些改进的特性,如响应性系统的重写、新的组合式API、更高效的虚拟DOM等。这些改进使得Vue3在性能和开发体验方面有了显著的提升。 Vite是一个新一代的构建工具,它专注于提供快速的冷启动和快速的开发体验。Vite基于ESM(ES模块)构建,通过利用现代浏览器原生的模块引入能力来消除了繁琐的打包步骤。Vite还支持热重载,可以在开发过程中实时更新页面内容,提高开发效率。 Pinia是一个专门为Vue3设计的状态管理库。它提供了一种简单且可扩展的方式来管理应用程序中的状态。Pinia通过使用Vue3的响应式系统,能够高效地管理状态,并提供了丰富的API来处理状态的变化和逻辑。 Element Plus是一个基于Vue3的UI组件库,它提供了一套丰富的、美观的界面组件,帮助开发者简化开发和设计工作。Element Plus内置了大量的常用组件,如按钮、表格、表单等,可以通过简单的配置和组合来构建复杂的界面。 综上所述,个人博客网站使用Vue3作为前端框架,通过Vite进行快速构建和开发,在状态管理方面选用Pinia,并使用Element Plus作为UI组件库,这样可以提供更好的开发体验和用户界面效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值