您现在的位置是:网站首页> 编程资料编程资料
在 React Native 中使用 CSS Modules的配置方法_React_
2023-05-24
314人已围观
简介 在 React Native 中使用 CSS Modules的配置方法_React_
有些前端工程师希望也能像开发 web 应用那样,使用 CSS Modules 来开发 React Native。本文将介绍如何在 React Native 中使用 CSS Modules。
安装依赖和配置
首先安装 react-native-sass-transformer 使得我们可以在 React Native 应用中使用 sass 样式。
yarn add react-native-sass-transformer sass -D
参考如下配置,修改 metro.config.js 文件
const { getDefaultConfig } = require("metro-config") module.exports = (async () => { const { resolver: { sourceExts }, } = await getDefaultConfig() return { transformer: { babelTransformerPath: require.resolve("react-native-sass-transformer"), }, resolver: { sourceExts: [...sourceExts, "scss", "sass"], }, } })()我们还需要安装另外两个依赖
yarn add babel-plugin-react-native-classname-to-style \ babel-plugin-react-native-platform-specific-extensions -D
修改 babel.config.js 文件,配置刚刚安装的两个插件
module.exports = { presets: ["module:metro-react-native-babel-preset"], plugins: [ "react-native-classname-to-style", [ "react-native-platform-specific-extensions", { extensions: ["scss", "sass"], }, ], ], }因为我们的项目使用了 Typescript,为了避免类型警告,在项目中添加一个 global.d.ts 文件,内容如下
declare module "*.scss"
使用
React Native CSS Modules 支持 @mixin @include @extend 等操作
@mixin lightFontStyle($fontColor: rgb(0, 0, 0)) { font-size: 22px; font-family: $sencodary-font-light; letter-spacing: 0.96px; color: $fontColor; } .input { @include lightFontStyle($fontColor: rgb(39, 39, 39)); padding: 12px 20px 40px; flex: 1; } .disabled { @extend .input; color: rgb(99, 99, 99); }CSS Modules 也可以很好的和 StyleSheet 一起工作
// App.scss @import "./theme/font.scss"; .welcome { font-family: $primary-font; font-size: 17px; text-align: center; }//App.tsx import React from "react" import { Text, StyleSheet } from "react-native" import scss from "./App.scss" function Welcome(props: Props) { return Hello {props.name}! } const styles = StyleSheet.create({ text: { backgroundColor: "transparent", margin: 8, }, })示例
这里有 一个示例 ,供你参考。
到此这篇关于如何在 React Native 中使用 CSS Modules的文章就介绍到这了,更多相关React Native使用 CSS Modules内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
您可能感兴趣的文章:
相关内容
- 关于vue-tree-chart简单的使用_vue.js_
- element中的el-upload附件上传与附件回显_vue.js_
- 详解Vue3 父组件调用子组件方法($refs 在setup()、<script setup> 中使用)_vue.js_
- Vue + element-ui 背景图片设置方式_vue.js_
- element-ui中页面缩放时table表格内容错位的解决_vue.js_
- vue静态界面之左二级菜单右表单表格的实例代码_vue.js_
- 关于Element-ui中Table表格无法显示的问题及解决_vue.js_
- Dapr+NestJs编写Pub及Sub装饰器实战示例_node.js_
- vue中的rem如何配置_vue.js_
- echarts图形x、y坐标文字设置间隔显示及相关问题详解_javascript技巧_
