umi3+React:使用less变量自定义颜色主题(less-vars-to-js)

第一种方法,不使用插件,直接直接theme配置,然后即可直接在less文件中使用在此定义 的变量。
https://v3.umijs.org/zh-CN/config#theme

export default {
  theme: {
    '@primary-color': '#1DA57A',
  },
};

第二种使用less-vars-to-js,将less文件转化为js对象

src\assets\css\index.less

@theme-color: '#888';

src\theme\variables.ts

import lessToJs from 'less-vars-to-js';
import path from 'path';
import fs from 'fs';

const themeVariables = lessToJs(
  fs.readFileSync(path.join(__dirname, '../assets/css/index.less'), 'utf8'),
);

console.log('themeVariables',themeVariables);

export default themeVariables;

在这里插入图片描述
.umirc.ts

import { defineConfig } from 'umi';
import theme  from './src/theme/variables';

export default defineConfig({
  nodeModulesTransform: {
    type: 'none',
  },
  fastRefresh: {},
  title: 'umi3+React-自学项目',
  metas: [
    {
      name: 'description',
      content: 'jishuuuu。',
    }, {
      name: 'keywords',
      content: 'umi, umijs',
    },
    {
      name: 'roots',
      content: 'umi, umijs',
    }
  ],
  // ssr:{}
  theme: theme,
});

应用

src\pages\NoteBook\index.tsx

import './index.less';

export default function NoteBook() {

    const goPage = (url) => {
        const element = document.createElement('a');
        element.href = url
        element.target = '_blank'
        element.click()
  
    }
    return (
        <>
            hello
            <button onClick={() => {
                goPage('//baidu.com')
            }}>点击跳转</button>
            <br />
            <div className="box-note-book">
                helllo
            </div>
        </>
    )
}

src\pages\NoteBook\index.less

.box-note-book {
  height: 200px;
  width: 300px;
  background-color: @theme-color;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值