当前位置: 首页 > news >正文

建一个网站时间限制秦皇岛seo招聘

建一个网站时间限制,秦皇岛seo招聘,东莞路桥投资建设公司招聘,装修网名大全css modules 什么是 css modules 因为 React 没有Vue的Scoped,但是React又是SPA(单页面应用),所以需要一种方式来解决css的样式冲突问题,也就是把每个组件的样式做成单独的作用域,实现样式隔离,而css modules就是一种…

css modules

什么是 css modules

因为 React 没有Vue的Scoped,但是React又是SPA(单页面应用),所以需要一种方式来解决css的样式冲突问题,也就是把每个组件的样式做成单独的作用域,实现样式隔离,而css modules就是一种解决方案,但是我们需要借助一些工具来实现,比如webpackpostcsscss-loadervite等。

如何在Vite中使用css modules

css modules,可以配合各种css预处理去使用,例如lesssassstylus等。

npm install less -D # 安装less 任选其一
npm install sass -D # 安装sass 任选其一
npm install stylus -D # 安装stylus 任选其一

在Vite中css Modules 是开箱即用的,只需要把文件名设置为xxx.module.[css|less|sass|stylus],就可以使用css modules了。

  • src/components/Button/index.module.scss
.button {color: red;
}
  • src/components/Button/index.tsx
//使用方法,直接引入即可
import styles from './index.module.scss';export default function Button() {return <button className={styles.button}>按钮</button>;
}
  • 编译结果, 可以看到button类名被编译成了button_pmkzx_6,这就是css modules的实现原理,通过在类名前添加一个唯一的哈希值,来实现样式隔离。
<button class="button_pmkzx_6">按钮</button>

修改css modules 规则

  • 在vite.config.ts中配置css modules的规则
export default defineConfig({css: {modules: {localsConvention: 'dashes', // 修改css modules的类名规则 可以改成驼峰命名 或者 -命名等generateScopedName: '[name]__[local]___[hash:base64:5]', // 修改css modules的类名规则},},
});

例子 例如设置为(localsConvention:camelCaseOnly)驼峰命名

camelCase 和 camelCaseOnly 区别在于,camelCase 会把非驼峰的命名转为驼峰,并保留之前的类名,而 camelCaseOnly 只会把非驼峰的命名转为驼峰,并删除之前的类名。

  • src/components/Button/index.module.scss
.button-red {color: red;
}
  • src/components/Button/index.tsx

设置为驼峰之后,使用的时候需要使用驼峰命名,例如buttonRed,而不是button-red

import styles from './index.module.scss';export default function Button() {return <button className={styles.buttonRed}>按钮</button>;
}

例子 例如设置为(localsConvention:dashesOnly)会将所有-的类名转化为驼峰,并且原始的类名会被删除

dashes 和 dashesOnly 区别在于,dashes 会保留原始的类名,而 dashesOnly 会删除原始的类名。

  • src/components/Button/index.module.scss
.button-red {color: red;
}
  • src/components/Button/index.tsx

设置为原始命名之后,使用的时候需要使用驼峰命名,例如buttonRed,而不是button-red

import styles from './index.module.scss';export default function Button() {return <button className={styles.buttonRed}>按钮</button>;
}

如果想同时支持驼峰命名和-连接的命名,可以设置为localsConvention:[camelCase|dashes],这样就可以同时支持驼峰命名和-连接的命名。

例子 修改css modules的类名规则

  • 在vite.config.ts中配置css modules的规则
export default defineConfig({css: {modules: {generateScopedName: '[local]_[hash:base64:5]' // 只保留类名和哈希值// 或者generateScopedName: '[hash:base64:8]' // 只使用哈希值// 或者generateScopedName: '[name]_[local]' // 只使用文件名和类名,没有哈希// 或者generateScopedName: '[local]--[hash:base64:4]' // 自定义分隔符},},
});

编译结果

<button class="button_pmkzx_6">类名 + 哈希值</button>
<button class="pmkzx_6">哈希值</button>
<button class="index-module_button">文件名 + 类名</button>
<button class="button--pmkzx_6">类名 + 分隔符 + 哈希值</button>

维持类名

意思就是说在样式文件中的某些样式,不希望被编译成css modules,可以设置为global,例如:

.app{background: red;width: 200px;height: 200px;:global(.button){background: blue;width: 100px;height: 100px;}
}
//在使用的时候,就可以直接使用原始的类名 button
import styles from './index.module.scss';
const App: React.FC = () => {return (<><div className={styles.app}><button className='button'>按钮</button></div></>);
}
http://www.yidumall.com/news/101527.html

相关文章:

  • 兼职做一篇微信的网站百度客服怎么转人工电话
  • 大连网站建设选高合科技个人怎么做百度竞价
  • 怎么用网站建设宣传推广计划怎么写
  • 大良网站建设公司免费建立网站
  • b站炮姐淘宝关键词排名查询网站
  • 个人网站的域名注册域名大全查询
  • 好看的404页面html山东网站seo推广优化价格
  • 学校网站建设实训总结适合口碑营销的产品
  • 同wordpress网站排名优化查询
  • publisher做的网站如何获得url民生热点新闻
  • 搭建本地环境做网站网络运营培训课程
  • 重庆建设造价工程信息网站网络营销策略分析方法
  • 四川省建设监督网最新黑帽seo教程
  • 日本做a的图片视频在线观看网站网络营销案例成功案例
  • joomla可以做预订类网站吗搜索引擎的工作原理有哪些
  • aspx网站开发 案例网站排名推广软件
  • 九九九九人力资源有限公司关键词长尾词优化
  • 快速建网站软件免费影视软件靠什么赚钱
  • 赚钱网站平台互联网营销是干什么
  • 潍坊知名网站建设服务商淘宝关键词优化
  • 深圳网站建设模板乐云seo企业网站营销实现方式解读
  • 杭州做网站怎么收费外贸网站建设推广公司
  • 极速网站建设定制巨量引擎app
  • 网站建设推广一对一服务百度词条
  • wordpress如何安装模板文件夹西安seo服务公司排名
  • wordpress 图片库宁波seo企业推广
  • 网站做专题提升权重湘潭网站制作
  • 网站的线下推广怎么做的淘宝关键词排名优化技巧
  • 可以做go分析的网站哪个平台做推广效果好
  • 廉价网站建设秒收录关键词代发