在?React?Native?中使用?CSS?Modules的配置方法
有些前端工程師希望也能像開(kāi)發(fā) web 應(yīng)用那樣,使用 CSS Modules 來(lái)開(kāi)發(fā) React Native。本文將介紹如何在 React Native 中使用 CSS Modules。
安裝依賴和配置
首先安裝 react-native-sass-transformer 使得我們可以在 React Native 應(yīng)用中使用 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"],
},
}
})()我們還需要安裝另外兩個(gè)依賴
yarn add babel-plugin-react-native-classname-to-style \ babel-plugin-react-native-platform-specific-extensions -D
修改 babel.config.js 文件,配置剛剛安裝的兩個(gè)插件
module.exports = {
presets: ["module:metro-react-native-babel-preset"],
plugins: [
"react-native-classname-to-style",
[
"react-native-platform-specific-extensions",
{
extensions: ["scss", "sass"],
},
],
],
}因?yàn)槲覀兊捻?xiàng)目使用了 Typescript,為了避免類型警告,在項(xiàng)目中添加一個(gè) global.d.ts 文件,內(nèi)容如下
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 <Text style={[scss.welcome, styles.text]}>Hello {props.name}!</Text>
}
const styles = StyleSheet.create({
text: {
backgroundColor: "transparent",
margin: 8,
},
})示例
這里有 一個(gè)示例 ,供你參考。
到此這篇關(guān)于如何在 React Native 中使用 CSS Modules的文章就介紹到這了,更多相關(guān)React Native使用 CSS Modules內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- React找不到模塊“./index.module.scss”或其相應(yīng)的類型聲明及解決方法
- react 報(bào)錯(cuò)Module build failed: BrowserslistError: Unknown browser query `dead`問(wèn)題的解決方法
- 關(guān)于React Native報(bào)Cannot initialize a parameter of type''NSArray<id<RCTBridgeModule>>錯(cuò)誤(解決方案)
- 在Create React App中使用CSS Modules的方法示例
- 在create-react-app中使用css modules的示例代碼
- 詳解使用create-react-app添加css modules、sasss和antd
- react使用css module無(wú)法重寫bootstrap樣式問(wèn)題及解決
相關(guān)文章
Express+React+Antd實(shí)現(xiàn)上傳功能(前端和后端)
這篇文章主要介紹了Express+React+Antd實(shí)現(xiàn)上傳功能(前端和后端),本文通過(guò)示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2024-04-04
React如何實(shí)現(xiàn)瀏覽器打印部分內(nèi)容詳析
這篇文章主要給大家介紹了關(guān)于利用React如何實(shí)現(xiàn)瀏覽器打印部分內(nèi)容的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用React具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05
antd?table動(dòng)態(tài)修改表格高度的實(shí)現(xiàn)
本文主要介紹了antd?table動(dòng)態(tài)修改表格高度的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
Objects are not valid as a Rea
這篇文章主要為大家介紹了Objects are not valid as a React child報(bào)錯(cuò)解決方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12
基于react?vant實(shí)現(xiàn)彈窗搜索功能
這篇文章主要為大家詳細(xì)介紹了如何基于react?vant實(shí)現(xiàn)彈窗搜索功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-01-01
nginx配置React靜態(tài)頁(yè)面的方法教程
作為一個(gè)前端開(kāi)發(fā)時(shí)刻想著,怎么把自己寫的東西,丟到自己的服務(wù)器上面,然后展示給別人看。下面我就簡(jiǎn)單直白的寫下,這篇文章主要給大家介紹了關(guān)于nginx配置React靜態(tài)頁(yè)面的方法教程,需要的朋友可以參考下。2017-11-11
封裝一個(gè)最簡(jiǎn)單ErrorBoundary組件處理react異常
這篇文章主要介紹了一個(gè)處理react異常的ErrorBoundary組件,簡(jiǎn)單實(shí)用,代碼詳細(xì),對(duì)這個(gè)組件感興趣的朋友可以參考下2021-04-04

