react项目中外部资源添加
原创
©著作权归作者所有:来自51CTO博客作者wx66165f8d5297d的原创作品,请联系作者获取转载授权,否则将追究法律责任
- css模块化加载
// 在js文件中加载 css 模块 (css in js (jss))
import styles from './App.module.css' // .module.css 为模块化css的命名规范
//标签上引用
return (
<div className={styles.App}>
// style 会转换为对象
<div className={styles.robotList}>
{robots.map(r=>(<Robot id={r.id} name={r.name} email={r.email}/>))}
</div>
</div>
);
相较于传统的 import '/app.js' , 该模式是按需加载 , 不会将app.css的全部样式导入jsx文件中 , 只会导入标签所需文件 , 同时也会避免造成全局css污染
- 在typescript中使用css模块化加载
// 1. 安装css处理插件 ( 安装在dev依赖中)
npm install typescript-plugin-css-modules --save-dev
//2 . 编写类型声明文件 ( ts 需要编写类型声明文件 )
// custom.d.ts (后缀必须为.d.ts)
declare module "*.css" {
const css:{[key: string]:string};
export default css
}
//3 . 在tsconfig.json 中配置 插件
"compilerOptions": {
//添加
"plugins":[{"name": "typescript-plugin-css-modules"}]
}
// 4 . 在vscode编辑器中新建.vscode文件夹和settings.json
//并添加一下代码
{
"typescript.tsdk": "node_modules/typescript/lib",
"typescript.enablePromptUseWorkspaceTsdk": true
}
//这样 , 在App.tsx 中引入css模块也会出现相应提示
- 引用字体文件 , 将ttf格式文件放在assets/fonts , 在index.css文件中进行引用
@font-face {
font-family: 'Slidefu'; // 字体名称
src: local('Slidefu'), url(./assets/fonts/Slidefu-Regular-2.ttf) format('truetype');
}
//在需要添加字体的类中添加
font-family: 'Slidefu';