使用 React Native Web 實現三端統一開發

使用 React Native Web 實現三端統一開發

關鍵點
  • React Native Web 簡介:React Native Web 是一個允許開發者使用 React Native 組件和 API 構建 Web 應用的庫,支持在 iOS、Android 和 Web 上使用同一套代碼。
  • 架構:通過 React DOM 渲染 React Native 組件,將其映射為 HTML 元素(如 <View> 映射為 <div>),并將 JavaScript 樣式轉換為 CSS。
  • 項目搭建:可通過 Expo 快速搭建,支持開箱即用的 Web 功能;或手動配置 React Native 項目,添加 react-native-web 和 Webpack。
  • 跨平臺兼容性:使用 Platform.select() 實現平臺差異化渲染,第三方庫如 React Native Paper 和 NativeWind 支持 Web。
  • 布局策略:結合 FlexBox 和媒體查詢實現響應式布局,推薦使用 react-native-responsive-screen 等庫。
  • 資源與樣式復用:通過統一處理圖片、字體和圖標,以及使用 styled-components/native 實現跨平臺樣式復用。
  • 構建與部署:使用 Expo 或 Webpack 構建 Web 應用,部署到 Vercel 或 Netlify,結合預渲染工具(如 react-snap)優化 SEO。
  • 注意事項:雖然 React Native Web 簡化了跨平臺開發,但 Web 平臺的 SEO 和性能優化可能需要額外配置。
什么是 React Native Web?

React Native Web 是一個開源庫,允許開發者使用 React Native 的組件和 API 構建 Web 應用。它通過 React DOM 將 React Native 代碼渲染為瀏覽器中的 HTML 元素,從而實現“一套代碼,多端復用”。這意味著開發者可以編寫一次代碼,在 iOS、Android 和 Web 上運行,顯著提高開發效率。

項目搭建方式

使用 Expo:Expo 是一個為 React Native 提供工具和服務的平臺,內置支持 React Native Web。創建項目只需運行 npx create-expo-app my-app,然后通過 npx expo start --web 啟動 Web 應用。Expo 簡化了配置過程,適合快速開發。

手動配置:對于需要更多控制的項目,可以通過 npx react-native init MyApp 創建 React Native 項目,然后安裝 react-native-web 并配置 Webpack。這種方式需要手動設置打包流程,但提供了更高的靈活性。

跨平臺組件與布局

通過 Platform.select(),開發者可以根據平臺(iOS、Android、Web)渲染不同的組件或樣式。第三方庫如 React Native Paper(Material Design 組件庫)和 NativeWind(Tailwind CSS 的 React Native 實現)支持 Web 平臺,但可能需要額外配置。布局方面,FlexBox 是 React Native 的核心布局機制,結合媒體查詢和 react-native-responsive-screen 等庫,可以實現跨平臺的響應式設計。

資源與樣式復用

圖片、字體和圖標可以通過 React Native 的 Image 組件、CSS @font-facereact-native-vector-icons 等工具實現跨平臺復用。使用 styled-components/native,開發者可以創建跨平臺的樣式組件,確保一致的用戶體驗。

構建、部署與 SEO

使用 Expo 的 expo build:web 或 Webpack 構建 Web 應用后,可部署到 Vercel 或 Netlify 等平臺。為優化 SEO,建議使用 react-snap 等預渲染工具生成靜態 HTML,因為 React Native Web 默認不提供服務器端渲染(SSR)。


引言

在現代應用開發中,跨平臺開發已成為降低開發成本和提高效率的重要手段。React Native 是一個廣受歡迎的框架,允許開發者使用 JavaScript 和 React 構建 iOS 和 Android 原生應用。而 React Native Web 的出現進一步擴展了這一能力,使得同一套代碼可以運行在 Web 平臺上,實現真正的“三端統一”開發。本文將詳細探討 React Native Web 的核心概念、架構、項目搭建方式、組件兼容性、布局策略、資源與樣式復用,以及構建、部署和 SEO 優化方法,旨在為開發者提供一份全面的指南。

什么是 React Native Web?

定義與功能

React Native Web 是一個開源庫,允許開發者使用 React Native 的組件和 API 構建 Web 應用。它通過 React DOM 將 React Native 代碼渲染為瀏覽器中的 HTML 元素,從而實現“一套代碼,多端復用”。這意味著開發者可以編寫一次代碼,在 iOS、Android 和 Web 上運行,顯著減少開發和維護的工作量。

React Native Web 的核心優勢包括:

  • 跨平臺一致性:使用相同的 React Native 組件(如 <View><Text>)在不同平臺上渲染。
  • 高效開發:通過代碼復用,減少為不同平臺編寫重復代碼的需要。
  • 生態系統支持:與 React Native 生態系統兼容,支持許多第三方庫和工具。

應用場景

React Native Web 適用于以下場景:

  • 新項目開發:希望從一開始就支持 iOS、Android 和 Web 的應用。
  • 現有 React Native 項目擴展:將已有的移動端應用擴展到 Web 平臺。
  • Web 優先項目:需要快速構建 Web 應用,同時保留未來擴展到移動端的可能性。

核心特性

根據 React Native for Web 官網,其主要特性包括:

  • 可訪問的 HTML:支持不同設備和輸入方式,渲染語義化標簽。
  • 高質量交互:支持觸摸、鼠標和鍵盤等多種輸入模式。
  • 可靠的樣式:使用 JavaScript 編寫樣式,自動添加瀏覽器前綴,支持 RTL 布局。
  • 響應式容器:支持元素大小調整事件。
  • 增量采用:與現有 React DOM 組件互操作,允許逐步集成。

React Native Web 的架構

橋接層原理

React Native Web 的核心是一個橋接層,負責將 React Native 組件和 API 映射到 Web 平臺的 HTML 元素和 DOM API。它通過 React DOM 渲染 React Native 代碼,確保在瀏覽器中呈現與移動端一致的用戶界面。

例如:

  • React Native 的 <View> 組件被映射為 HTML 的 <div> 元素。
  • <Text> 組件被映射為 <span><p> 元素。
  • React Native 的樣式對象(如 { backgroundColor: 'blue' })被轉換為 CSS 樣式。

這種映射機制使得開發者可以使用熟悉的 React Native 語法,而無需直接操作 DOM 或 CSS。

樣式處理

React Native Web 使用 JavaScript 編寫樣式,并將其轉換為瀏覽器可識別的 CSS。這種方法避免了傳統 CSS 在大規模項目中的復雜性問題,例如命名沖突和樣式覆蓋。開發者可以通過 JavaScript 對象定義樣式,并利用 React Native Web 的自動前綴功能確保跨瀏覽器兼容性。

例如:

const styles = {container: {backgroundColor: 'blue','@media (min-width: 600px)': {backgroundColor: 'red',},},
};

與 React DOM 的集成

React Native Web 構建在 React DOM 之上,支持現代 React API(如函數組件和 Hooks)。這使得現有 React Web 應用可以逐步采用 React Native Web,而無需重寫整個代碼庫。例如,Twitter 和 Flipkart 都通過這種方式將 React Native Web 集成到其 Web 應用中。

項目搭建方式

使用 Expo

Expo 是一個為 React Native 提供工具和服務的平臺,內置支持 React Native Web。根據 Expo 文檔,以下是使用 Expo 搭建項目的步驟:

  1. 創建項目

    npx create-expo-app my-app
    cd my-app
    
  2. 安裝 Web 支持依賴(通常已內置):

    npx expo install react-dom react-native-web @expo/webpack-config
    
  3. 啟動 Web 應用

    npx expo start --web
    

Expo 提供了一個統一的開發體驗,支持快速刷新、調試和平臺特定的優化。所有 Expo SDK 模塊都支持 Web 和移動端,開發者無需額外配置即可運行三端應用。

手動配置

對于需要更多控制或不適合使用 Expo 的項目,可以手動配置 React Native 項目以支持 Web。以下是步驟:

  1. 創建 React Native 項目

    npx react-native init MyApp
    cd MyApp
    
  2. 安裝 react-native-web

    npm install react-native-web
    
  3. 配置 Webpack
    創建一個 Webpack 配置文件(如 webpack.config.js),并設置模塊別名以將 react-native 替換為 react-native-web。示例配置:

    const path = require('path');
    module.exports = {entry: './index.web.js',output: {path: path.resolve(__dirname, 'dist'),filename: 'bundle.js',},resolve: {alias: {'react-native$': 'react-native-web',},},module: {rules: [{test: /\.js$/,exclude: /node_modules/,use: {loader: 'babel-loader',options: {presets: ['@babel/preset-env', '@babel/preset-react'],},},},],},
    };
    
  4. 創建 Web 入口文件(如 index.web.js):

    import { AppRegistry } from 'react-native';
    import App from './App';
    AppRegistry.registerComponent('MyApp', () => App);
    AppRegistry.runApplication('MyApp', {rootTag: document.getElementById('root'),
    });
    
  5. 創建 HTML 文件(如 index.html):

    <!DOCTYPE html>
    <html>
    <head><title>My React Native Web App</title>
    </head>
    <body><div id="root"></div><script src="bundle.js"></script>
    </body>
    </html>
    
  6. 運行 Web 應用

    npx webpack serve
    

手動配置提供了更高的靈活性,但需要開發者熟悉 Webpack 和 Web 開發流程。推薦參考 React Native for Web 文檔 獲取詳細配置指南。

Expo vs 手動配置

特性Expo手動配置
配置復雜度低,內置 Web 支持高,需要配置 Webpack 等工具
靈活性受限于 Expo 生態系統高,可自定義所有方面
開發速度快,適合快速原型開發慢,適合需要深度定制的項目
生態系統支持提供豐富的 SDK 模塊需手動集成第三方庫

組件跨平臺兼容性

使用 Platform.select()

React Native 提供了 Platform 模塊,允許開發者根據運行平臺(iOS、Android、Web)執行不同的邏輯。Platform.select() 是實現平臺差異化渲染的常用方法。示例:

import { Platform, View, Text } from 'react-native';const MyComponent = () => {return Platform.select({ios: <Text>這是 iOS 專屬組件</Text>,android: <Text>這是 Android 專屬組件</Text>,web: <View style={{ backgroundColor: 'lightblue' }}><Text>這是 Web 專屬組件</Text></View>,});
};

通過 Platform.OS === 'web',開發者可以為 Web 平臺提供特定的樣式或組件,確保用戶體驗與平臺特性一致。

第三方組件兼容性分析

React Native Paper

React Native Paper 是一個遵循 Google Material Design 規范的 UI 組件庫。根據 React Native Paper 官網,它支持 Web 平臺,但需要額外配置以加載字體和圖標。例如,使用 react-native-vector-icons 加載 Material Design 圖標:

import { Platform } from 'react-native';
import { PaperProvider } from 'react-native-paper';const App = () => (<PaperProvider>{Platform.OS === 'web' ? (<style type="text/css">{`@font-face {font-family: 'MaterialDesignIcons';src: url(${require('react-native-vector-icons/MaterialIcons.ttf')}) format('truetype');}`}</style>) : null}<YourApp /></PaperProvider>
);

需要注意的是,React Native Paper 在 Web 上的表現可能不如移動端完美。例如,某些動畫或交互可能需要額外優化。

NativeWind

NativeWind 是 Tailwind CSS 在 React Native 中的實現,專為跨平臺開發設計。根據 NativeWind 官網,它支持 React Native Web,確保在移動端和 Web 端使用一致的樣式類。安裝和使用示例:

npm install nativewind
npm install --save-dev tailwindcss
import { View, Text } from 'react-native';const MyComponent = () => (<View className="flex-1 justify-center items-center bg-blue-500"><Text className="text-white text-lg">Hello, NativeWind!</Text></View>
);

相比 Tailwind-RN,NativeWind 更適合三端統一開發,因為它明確支持 Web 平臺,且與 Tailwind CSS 的工作流保持一致。

統一布局策略

FlexBox 布局

React Native 使用 FlexBox 作為默認布局機制,與 Web 的 CSS FlexBox 高度兼容。開發者可以使用熟悉的 FlexBox 屬性(如 flexDirectionjustifyContentalignItems)構建跨平臺布局。示例:

import { View, StyleSheet } from 'react-native';const App = () => (<View style={styles.container}><View style={styles.box} /></View>
);const styles = StyleSheet.create({container: {flex: 1,justifyContent: 'center',alignItems: 'center',},box: {width: 100,height: 100,backgroundColor: 'red',},
});

響應式設計

為實現響應式布局,開發者可以結合以下工具和方法:

  • 媒體查詢:React Native Web 支持在樣式對象中使用媒體查詢。例如:
    const styles = StyleSheet.create({container: {backgroundColor: 'blue','@media (min-width: 600px)': {backgroundColor: 'red',},},
    });
    
  • react-native-responsive-screen:該庫允許使用基于屏幕尺寸的百分比單位。例如:
    import { widthPercentageToDP as wp, heightPercentageToDP as hp } from 'react-native-responsive-screen';const styles = StyleSheet.create({container: {width: wp('50%'),height: hp('100%'),},
    });
    
  • react-native-size-matters:提供基于設備尺寸的縮放功能。例如:
    import { scale, verticalScale, moderateScale } from 'react-native-size-matters';const styles = StyleSheet.create({text: {fontSize: moderateScale(16),},
    });
    
  • useWindowDimensions:React Native 提供的 Hook,用于動態獲取窗口尺寸并調整布局。例如:
    import { useWindowDimensions } from 'react-native';const MyComponent = () => {const { width, height } = useWindowDimensions();return (<View style={{ width: width > 600 ? '50%' : '100%' }}><Text>響應式布局</Text></View>);
    };
    

通過結合 FlexBox、媒體查詢和響應式庫,開發者可以構建適應不同屏幕尺寸和平臺的布局。

資源與樣式復用

圖片、字體和圖標

  • 圖片:使用 React Native 的 Image 組件加載圖片,支持本地文件和網絡 URL。在 Web 上,Image 會被渲染為 <img> 元素。開發者應確保提供適合不同平臺的圖片分辨率。
  • 字體:在移動端,需通過 React Native 的 Font 模塊加載自定義字體;在 Web 端,使用 CSS @font-face。示例:
    import { Platform } from 'react-native';const styles = StyleSheet.create({text: {fontFamily: Platform.OS === 'web' ? 'CustomFont' : 'custom-font',},
    });// Web 端加載字體
    if (Platform.OS === 'web') {const style = document.createElement('style');style.type = 'text/css';style.innerHTML = `@font-face {font-family: 'CustomFont';src: url('/path/to/font.ttf') format('truetype');}`;document.head.appendChild(style);
    }
    
  • 圖標:使用 react-native-vector-icons 提供跨平臺的圖標支持。需為 Web 端配置字體文件,如上文 React Native Paper 示例所示。

樣式庫抽象

styled-components/native 是一個強大的樣式庫,支持 React Native 和 React Native Web。開發者可以創建可復用的樣式組件,確保跨平臺一致性。示例:

import styled from 'styled-components/native';const StyledView = styled.View`background-color: ${props => props.theme.primaryColor};padding: 10px;
`;const App = () => (<StyledView><Text>樣式化組件</Text></StyledView>
);

通過定義主題(theme),開發者可以輕松切換不同平臺的樣式配置。

構建、部署與 SEO

構建與部署

  • 使用 Expo:運行 expo build:web 生成 Web 構建產物,然后部署到 Vercel 或 Netlify。示例:
    expo build:web
    vercel ./web-build
    
  • 手動構建:使用 Webpack 打包 Web 應用,生成 bundle.jsindex.html,然后部署到 Web 服務器。示例 Webpack 配置已在“手動配置”部分提供。

SEO 優化

React Native Web 默認渲染為客戶端渲染(CSR),可能不利于搜索引擎優化(SEO)。為改善 SEO,推薦以下方法:

  • 預渲染:使用 react-snap 生成靜態 HTML 文件。例如,在 Expo 項目中,安裝 react-snap 并配置 package.json
    "scripts": {"postbuild": "react-snap"
    }
    
  • 元數據:確保 HTML 文件包含適當的元標簽(如 <title><meta name="description">)。
  • 結構化數據:使用 JSON-LD 提供搜索引擎可識別的結構化數據。

雖然 React Native Web 不直接支持服務器端渲染(SSR),但可以通過與 Next.js 等框架集成實現 SSR,具體方法需參考社區解決方案。

案例分析

以下是一些成功使用 React Native Web 的案例:

  • Twitter:通過增量采用 React Native Web,將部分 Web 應用遷移到 React Native 代碼庫。
  • Flipkart:利用 React Native Web 快速擴展其移動端應用到 Web 平臺。
  • Expo Snack:一個在線代碼編輯器,支持在瀏覽器中運行 React Native 項目,內置 React Native Paper 和 Web 支持。

總結

React Native Web 是一個強大的工具,允許開發者使用單一代碼庫構建 iOS、Android 和 Web 應用。通過 Expo 或手動配置,開發者可以快速搭建項目;通過 Platform.select() 和第三方庫(如 React Native Paper 和 NativeWind),實現跨平臺兼容性;通過 FlexBox 和響應式庫,構建統一布局;通過 styled-components/native 和資源管理,實現樣式和資源復用;通過預渲染和部署工具,優化 Web 應用的性能和 SEO。盡管存在一些挑戰(如 Web 平臺的性能優化和 SSR 限制),React Native Web 仍然為跨平臺開發提供了高效的解決方案。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/910076.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/910076.shtml
英文地址,請注明出處:http://en.pswp.cn/news/910076.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

分享一個git上基于std::array實現的循環隊列(Cycle Queue)模板類庫

為充分利用向量空間,克服“假溢出”現象的方法是:將向量空間想象為一個首尾相接的圓環,并稱這種向量為循環向量。存儲在其中的隊列稱為循環隊列(Circular Queue)。循環隊列是把順序隊列首尾相連,把存儲隊列元素的表從邏輯上看成一個環,成為循環隊列。 網上有很多關于循…

三維視頻融合平臺:如何構建動態感知的數字空間

分享大綱&#xff1a; 你的三維平臺為何不能承載動態視頻捷碼打造三維視頻融合平臺的三步法則為何選擇捷碼 在智慧城市建設過程中&#xff0c;將實時視頻與三維空間結合&#xff0c;已經成為一種主流趨勢。傳統視頻監控模式&#xff0c;經常面臨視頻分散、操作復雜等問題。然而…

【AI Study】第五天,Matplotlib(5)- 顏色映射

文章概要 本文詳細介紹 Matplotlib 的顏色映射功能&#xff0c;包括&#xff1a; 顏色映射類型顏色映射設置數據標準化顏色條 顏色映射類型 pcolormesh import matplotlib.pyplot as plt import numpy as np# 創建網格數據 x np.linspace(-3, 3, 100) y np.linspace(-3,…

DB2中合理使用INCLUDE關鍵字創建索引

DB2中合理使用 INCLUDE 關鍵字創建索引 1. 為何還需要 INCLUDE&#xff1f;——從索引的兩大痛點說起 查詢想“只讀索引不回表”&#xff0c;卻又不想把列都做鍵 → 聯合索引空間膨脹&#xff0c;更新放大。唯一索引定位快&#xff0c;但只能返回鍵列數據 → 仍需 I/O 跳回數據…

基于Spring Boot的民宿管理系統設計與實現

目錄 一.&#x1f981;前言二.&#x1f981;開源代碼與組件使用情況說明三.&#x1f981;核心功能1. ?算法設計2. ?Spring Boot框架3. ?Vue.js框架4. ?部署項目 四.&#x1f981;演示效果1. 管理員模塊1.1 瀏覽后臺首頁1.2 預訂信息管理1.3 入住信息管理1.4 退房信息管理1.…

大數據系統架構實踐(一):Zookeeper集群部署

大數據系統架構實踐&#xff08;一&#xff09;&#xff1a;Zookeeper集群部署 文章目錄 大數據系統架構實踐&#xff08;一&#xff09;&#xff1a;Zookeeper集群部署一、Zookeeper簡介二、部署前準備三、部署Zookeeper集群1. 下載并解壓安裝包2. 配置zoo.cfg3. 設置日志目錄…

《道德經》:探尋古老智慧中的哲學之光

我強烈推薦4本可以改變命運的經典著作&#xff1a; 《壽康寶鑒》在線閱讀白話文《欲海回狂》在線閱讀白話文《陰律無情》在線閱讀白話文《了凡四訓》在線閱讀白話文 《道德經》作為道家經典&#xff0c;短短五千言&#xff0c;卻字字珠璣&#xff0c;蘊含著超越時空的哲學智慧。…

科技賦能民生:中建海龍為民生改善注入新動力

在社會發展的進程中&#xff0c;民生改善始終占據著核心地位。住房、基礎設施建設等民生領域的進步&#xff0c;直接關系到民眾的生活質量與幸福感。中建海龍科技有限公司&#xff08;以下簡稱“中建海龍”&#xff09;作為建筑行業的創新引領者&#xff0c;憑借其強大的科技實…

BI 賦能,打造數據可視化看板新體驗

BI 賦能&#xff0c;打造數據可視化看板新體驗 引言 在當今數字化時代&#xff0c;數據成為企業決策的重要依據。如何從海量的數據中提取有價值的信息&#xff0c;并以直觀、易懂的方式呈現出來&#xff0c;是企業面臨的重要挑戰。商業智能&#xff08;BI&#xff09;工具的出…

vue2設置自定義域名跳轉

需求&#xff1a;首次登錄域名為aa.com&#xff0c;之后登錄系統后在系統內某個模塊設置三級域名為second&#xff0c;之后退出登錄到aa.com,登錄進入系統后域名自動變為second.aa.com&#xff0c;最后退出的域名也是second.aa.com&#xff0c;通過不同的域名配置動態的登錄頁面…

“地標界愛馬仕”再拓疆域:世酒中菜聯袂赤水金釵石斛定義中國GI

“地標界愛馬仕”再拓疆域&#xff1a;世酒中菜聯袂赤水金釵石斛&#xff0c;定義中國GI奢侈品新高度 ——中世國際與貴州斛滿多戰略合作簽約儀式在赤水舉行 赤水市&#xff0c;2025年5月18日——被譽為“地標界愛馬仕”的頂級奢侈品牌世酒中菜 &#xff08;世界酒中國菜全球…

零基礎、大白話,Vue3全篇通俗療法(上):基礎知識【看得懂】

前言 最近有個小朋友想了解Vue前端技術&#xff0c;但他只懂一些HTML基礎&#xff0c;讓我用最簡單的方式講解。于是就有了這篇面向初學者的博文。 老手請繞行&#xff0c;本文專為新手準備。如果發現用詞不當的地方歡迎留言指正&#xff0c;覺得對新手有幫助的話請收藏點贊。 …

JavaScript性能優化實戰

JavaScript性能優化實戰技術文章大綱 性能優化的重要性 解釋為什么性能優化對用戶體驗和業務指標至關重要討論核心Web指標&#xff08;LCP、FID、CLS&#xff09;與JavaScript性能的關系 代碼層面優化 減少DOM操作&#xff0c;使用文檔片段或虛擬DOM避免頻繁的重繪和回流&a…

考研英語作文評分標準專業批改

考研英語作文專業批改經過官方評分標準嚴格對標&#xff0c;徹底改變你的作文提升方式&#xff0c;打開 懂試帝小程序 直達批改。 &#x1f3af; 批改服務核心優勢 ? 官方標準嚴格對標 完全按照考研英語官方五檔評分制&#xff0c;從內容完整性、組織連貫性、語言多樣性到語…

智能群躍小助手發布說明

1.初次登陸需要授權碼 2.社群維護頁面 3.產品營銷頁面

SAM2論文解讀-既實現了視頻的分割一切,又比圖像的分割一切SAM更快更好

code&#xff1a;https://github.com/facebookresearch/sam2/tree/main demo:https://sam2.metademolab.com/ paper:https://ai.meta.com/research/publications/sam-2-segment-anything-in-images-and-videos/ 這是SAM 這是SAM2 Facebook出品&#xff0c;繼SAM在圖像上分割…

WPF 的RenderTransform使圖標旋轉180°

只是記錄一下思想&#xff1a; 本來想找兩個對稱的圖標給按鈕用&#xff0c;但是另一個找不到&#xff0c;就想到可不可以旋轉180實現另一個圖標的效果&#xff0c;問了一下DeepSeek&#xff1a; <Path Width"30" Height"30" Margin"1"Data…

Matplotlib 繪圖庫使用技巧介紹

目錄 前言 Matplotlib 簡介 快速入門 圖形結構解剖 常用繪圖函數 子圖與布局 單行多列子圖&#xff1a; 網格布局&#xff1a; 自定義位置&#xff1a; 樣式與標注 中文字體與科學計數 圖例、網格、坐標軸 動態圖與動畫 三維繪圖 常見問題與技巧 前言 Matplotli…

【Java基礎算法】1.相向指針練習

??博客主頁:程序員葵安 ??感謝大家點贊????收藏?評論??? 一、兩數之和 Ⅱ(167) 1.1 題目介紹 給你一個下標從 1 開始的整數數組 numbers ,該數組已按 非遞減順序排列 ,請你從數組中找出滿足相加之和等于目標數 target 的兩個數。如果設這兩個數分別是 nu…

“開放原子園區行”太原站:openKylin以開源之力,賦能產業發展

在數字化與智能化浪潮驅動下&#xff0c;開源技術已成為全球科技創新與產業升級的核心引擎&#xff0c;并為培育新質生產力開辟關鍵路徑。為加速開源生態建設&#xff0c;賦能區域經濟高質量發展&#xff0c;由開放原子開源基金會、山西省工業和信息化廳、山西轉型綜合改革示范…