[書籍精讀]《React Native精解與實戰》精讀筆記分享

来源:https://www.cnblogs.com/yzsunlei/archive/2020/04/22/12749061.html
-Advertisement-
Play Games

寫在前面 書籍介紹:本書由架構師撰寫,包含ReactNative框架底層原理,以及與iOS、Android混合開發案例,精選了大量實例代碼,方便讀者快速學習。主要內容分為兩大部分,第1部分“入門”包括第1~9章,介紹ReactNative框架的基本原理與使用方法;第2部分“進階”包括第10~15章, ...


寫在前面

  • 書籍介紹:本書由架構師撰寫,包含ReactNative框架底層原理,以及與iOS、Android混合開發案例,精選了大量實例代碼,方便讀者快速學習。主要內容分為兩大部分,第1部分“入門”包括第19章,介紹ReactNative框架的基本原理與使用方法;第2部分“進階”包括第1015章,介紹ReactNative框架的高階開發與App部署相關知識。附錄部分剖析了ReactNative的源碼,可幫助讀者研究ReactNative底層本質,還分享了一些ReactNative框架學習的相關資源。
  • 我的簡評:我是去年年底才開始學習使用React和React Native進行開發的,之前用的都是Vue的技術棧。這本書給我的感受就是邏輯清晰,通俗易懂,從基礎入門到原理進階,一一道來。但我想如果作者能再附帶一個完整的項目實戰可能效果更好,不過作者ParryQiu本人也寫過很多技術教程以及錄製了幾套視頻教程,有興趣的可以去他個人的技術博客看看。
  • !!福利:文末有pdf書籍、筆記思維導圖、隨書代碼打包下載地址。覺得有用,記得點贊或收藏哦!

1.React Native簡介

React簡介

  • 最早孵化於Facebook內部
  • Jordan Walke是框架的創始人
  • 底層核心是Virtual DOM

React Native簡介

  • 在React框架的基礎之上
  • 底層通過對IOS平臺和Android平臺原生代碼的封裝與調用
  • JavaScript Core底層

React Native學前知識

  • HTML5的基礎知識
  • CSS佈局的基本知識
  • JavaScript的基礎知識
  • Ios和Android兩個平臺的App打包、部署與上線
  • Node.js以及npm包管理的知識

2.開發環境配置

  • 安裝nodejs
  • 安裝React Native
  • 編輯器Vscode

推薦插件

  • React Native Tools
  • react-beautify

3.React Native工作原理與生命周期

3.1.框架工作原理

  • JSX源碼通過React Native框架編譯後,通過對應平臺的Bridge實現了與原生框架的通信
  • UI層變更就映射為虛擬DOM後調用diff演算法計算出變動後的JSON映射文件,最終由Native層將此JSON文件映射渲染到原生App的頁面元素上,實現了項目中只需控制state以及props的變更來引起IOS與Android平臺的UI變更

3.2.與原生平臺通信

  • 與原生框架通信中,採用了JavaScriptCore作為JS VM,中間通過JSON文件與Bridge進行通信
  • Chrome瀏覽器進行調試,那麼所有的JavaScript代碼都將運行在Chrome的V8引擎中,與原生代碼通過WebSocket進行通信

3.3.組件間通信

  • 父子組件通信:props
  • 子父組件通信:傳入函數
  • 多級組件之間的通信:context對象或global等方式
  • 無直接關係組件間通信:AsyncStorage或JSON文件,EventEmitter/EventTarget/EventDispatcher繼承或實現的介面,Signals模式,Publish/Suubscribe廣播形式

3.4.React Native生命周期

  • 初始化階段:constructor
  • 載入階段:componentWillMount、render、componentDidMount
  • 更新階段:componentWillReceiveProps、shouldComponentUpdate、componentWillUpdate、componentDidUpdate
  • 卸載階段:componentWillUnmount

4.React Native頁面佈局

4.1.CSS3

  • 選擇器、2D/3D轉換、盒子模型、動畫、背景和邊框、多列佈局、文字特效、用戶界面
  • 引入新的模塊:Flex佈局,通俗稱為彈性盒模型。為了更加有效的去佈局、對其元素

4.2.Flex彈性盒模型

  • 元素以兩個坐標方向進行佈局,分別稱為主軸和交叉軸
  • 元素都存在於Flex容器中
  • 以Flex Container的起始與結束作為坐標的起始與結束點
  • 可以自動伸縮,預設可以填充剩餘的空間

4.3.Flex詳解

  • justify-content
  • align-items
  • align-self
  • flex-direction
  • flex-basis
  • flex-wrap
  • align-content
  • flex-grow
  • flex-shrink
  • order
  • flex-flow
  • flex

4.4.React Native中Flex

  • 因為在React Native框架中直接使用JavaScript來實現屬性的定義,所以所有屬性都按照React Native中定義的寫法來寫,只是屬性名稱部分有連接符的,在React Native中變成了駝峰拼寫的形式,並且某些屬性的預設值進行了變更,但是本質的原理與作用是不變的

5.React Native開發調試技巧與工具

5.2.常用調試屬性(開發者菜單)

  • 重新載入刷新應用
  • 啟動實時重新載入刷新
  • 啟用調試跟蹤
  • 啟用熱載入
  • 顯示審查元素工具
  • 顯示性能監控工具

5.3.Chrome中遠程調試

  • 在 React Native 開發調試時,打開模擬器或真機設備上的開發者菜單,選擇“ Debug JS Remotely ”後,本地的 Chrome 瀏覽器會自動打開一個 tab,URL 地址
    http://localhost:8081/debugger-ui

5.4.React Developer Tools工具

  • 樹形結構查看
  • 源碼搜索
  • 邊欄工具

6.React Native組件詳解

6.1.組件簡介

  • 提供一系列的內置組件供開發者使用
  • 依托開源社區強大的生態系統,更有無窮無盡的開發組件可供使用

6.2.視圖組件View

  • 用於佈局的基礎組件是View組件,其他所有的組件都可以佈局在View組件中,類似網頁佈局中的div
  • 支持Flex CSS屬性,還支持React Native中的樣式、一些觸摸事件以及一些可訪問性的屬性設置
  • View組件對應iOS平臺的UIView,Android平臺的Android.view以及HTML中的div

6.3.底部導航組件TabBar

  • iOS平臺下的TabBarIOS
  • Android平臺沒有官方提供的TabBar組件,推薦使用開源組件react-native-tab-navigator

6.4.頁面跳轉組件

  • iOS平臺下的NavigatorIOS
  • Android沒有官方的頁面導航組件,推薦使用react-native-navigation

6.5.圖片組件Image

  • 提供多種方式載入圖片資源,如載入網路圖片、靜態資源、本地圖片、或讀取用戶相冊中的圖片
  • Android平臺下還可以支持GIF和WebP圖片格式,iOS平臺上支持psd
  • 在iOS平臺下,載入的資源必須是HTTPS協議資源

6.6.文本組件Text

  • React Native中不可以直接將文字放置在View組件之下
  • 可以進行文字的嵌套處理
  • React Native沒有直接定義元素級別樣式的能力,所以不能讓所有的Text等組件直接通過繼承的方式獲取到統一的樣式定義

6.7.輸入框組件TextInput

  • 提供了接受用戶通過鍵盤輸入字元的功能,並可以通過後期的配置實現如自動糾錯、自動大寫、提示文字以及顯示不同的鍵盤類型如郵件、數字等功能

6.8.觸摸處理類組件TouchableHighlight

  • 在組件被點擊時使用自定義的背景顏色進行高亮顯示,以便在某些使用場景下讓用戶更能明確地感應到對應的操作
  • 但只能包裹在一個層級的子元素上,如果有多個,那麼就需要使用一個View組件將所有的元素包裹起來,再放置在TouchableHighlight組件下

6.9.網頁WebView組件

  • App中有些頁面組件是經常變動的,如用戶幫助等,或者載入一個別人提供的頁面

6.10.滾動視圖組件ScrollView

  • ScrollView在指定了固定的高度之後即可以工作,用於生成一個可滾動的視圖
  • 但它會一次將所有的子元素渲染出來,數據量多的時候渲染效率肯定比較低下
  • React Native提供另一個組件FlatList用於改進這個組件的性能問題,會進行延遲渲染

7.React Native API詳解

7.1.API簡介

  • React Native不僅為開發人員提供了大量用於App開發佈局的組件,還提供了用於供開發人員調用的更加接近原生組件與功能的模塊

7.2.提示框Alert

  • 用於提示用戶的信息彈出框
  • 如果在彈出提示框的同時需要用戶輸入一些信息,那麼在iOS平臺下就需要調用AlertIOS API

7.3.App運行狀態AppState

  • 通過AppState可以獲取到當前App是在前臺運行還是在後臺運行
  • AppState共有三種狀態:active(正在前臺運行),background(在後臺運行),inactive(前後臺切換的一個短暫狀態)

7.4.非同步存儲AsyncStorage

  • 為開發者提供了一個非同步的、未加密、持久的、全局的鍵值對(key-Value)存儲模塊,如同HTML5中的LocalStorage
  • IOS平臺會使用原生代碼將AsyncStorage中的小數據存儲於序列化的字典數據結構中,而將大數據存儲在單獨的文件中
  • Android平臺會將AsyncStorage存儲於RocksDB或SQLite中,取決於哪一個模塊是可用的
  • AsyncStorage是明文存儲的。所以在iOS系統下,推薦將用戶敏感信息存儲在iOS的Keychain中,而在Android下,需要將用戶敏感信息存儲在SharedPreferences
  • iOS已有組件react-native-keychain,Android有react-native-sensitive-info組件

7.5.相機與相冊API

  • React Native框架中,API提供了CameraRoll供用戶訪問本地相冊的功能,而在iOS系統中使用此功能時,還需要先鏈接RCTCameraRoll庫
  • 在App的開發過程中,一般在為用戶提供讀取相冊的功能時,還應該給用戶提供一個直接相機拍照的功能。所以在開發過程中會直接使用集成了讀取相冊以及使用相機拍照二合一的功能組件
  • 開源組件React Native Image Picker提供了使用原生UI從設備相冊中選取圖片或者視頻的功能,或者直接使用相機進行拍攝讀取

7.6.地理位置信息Geolocation

  • 為App提供獲取定位坐標的功能

7.7.設備網路信息NetInfo

  • 獲取App當前網路狀態的功能API
  • 使用場景:通過網路的不同狀態載入不同的資源,以便提高用戶載入資源的速度,或者保存網路狀態以便判斷用戶使用場景的變化
  • iOS系統設備狀態:none、wifi、cell、unknown

8.React Native 網路請求詳解

8.1.Restful API簡介

  • REST指的是一組架構約束條件和原則

8.2.React Native中的網路請求

  • 提供了Fetch API作為網路請求之用
  • 現在產生的Fetch框架就是為了提供更加強大、高效的網路請求而生額。在Chrome瀏覽器中已經支持了Fetch函數
  • Fetch支持了大部分常用的HTTP的請求並和HTTP標準相容

8.3.ListView組件

  • 在通過Fetch API獲取數據後,一般會使用React Native中的ListView組件進行數據的綁定操作

9.常用React Native開源組件詳解

9.1.React Native熱門資源列表

  • github地址:awesome-react-native

9.2.React Native接入微博、微信、QQ登錄

  • 使用的組件是react-native-open-share

9.3.更加美觀的組件庫

  • react-virgin

9.4.React Native 圖表

  • react-native-pathjs-charts,基於react-native-svg與paths-js

9.5.react-native-gifted-listview

  • 提供了iOS平臺下的下拉刷新與Android平臺下的點擊刷新,以及列表底部載入更多組件功能。還提供了載入進度條、列表無數據時的預設視圖、列表頁頭標題等功能

9.6.react-native-vector-icons

  • 提供了幾千個圖標,而且這些圖標都是開源的

10.React Native運行原理與部署調試

10.1.React Native運行原理

  • 框架運行起來所依賴的幾大組成部分:硬體設備或者模擬器,用於運行原生代碼;Node.js服務端,也就是React Native Packger,負責源碼的打包工作;Google Chrome,可以提供中間態的調試工具;後臺的React Native JavaScript代碼;
  • React Native Packger實現原理:當我們在啟動iOS或Android項目時,React Native框架會自動啟動React Native Packager控制台來進行監聽和打包,而手動啟動的方法為在項目文件夾下運行命令npm start即可

10.2.iOS平臺部署於調試

  • 運行App到模擬器上:react-native run-ios --simulator="iPhone X"
  • 運行App到真機上:1、連接真機設備;2、配置代碼簽名;3、啟用iOS應用的ATS(App Transport Security);4、配置發佈模式;5、將資源文件靜態化打包;6、編譯發佈運行;

10.3.Android平臺部署與調試

  • 連接Android設備
  • Android離線JavaScript資源的打包
  • 在真機上運行App
  • Gradle:基於Apache Ant和Apache Maven概念的項目自動化工具。特點:自動處理包相依關係-取自Maven Repos的概念;自動處理部署問題-取自Ant的概念;條件判斷寫法直覺-使用Groovy語言;

10.4.Android模擬器介紹

  • Android Studio下自帶Android模擬器
  • 另一款模擬器Genymition可以模擬3000+的Android設備

11.IOS開發與React Native混合開發

11.1.iOS平臺混合開發簡介

  • 有時React Native框架還沒有提供對應的JavaScript Api,就需要自己編寫React Native框架與iOS平臺結合的混合開發代碼,使得React Native框架可以直接與iOS平臺的原生代碼進行通信

11.2.iOS平臺混合開發原理詳解

  • 實現過程:1.在iOS平臺的原生代碼中定義混合開發的入口,用於與React Native中的JavaScript代碼進行通信;2.設置iOS平臺下項目的編譯必備設置;3.在React Native項目中通過JavaScript代碼調用混合開發實現的iOS平臺原生功能;
  • 開發特性:參數類型;回調函數;Promise;多線程;依賴註入;導出常量;枚舉常量;發送事件到JavaScript;優化無監聽處理的事件;Swift的實現方法;

12.Android平臺與React Native混合開發

12.1.Android平臺混合開發簡介

  • 混合開發可以利用現有的Android原生平臺的代碼,並可以用於開發一些需求高性能、多線程的應用場景

12.2.Android平臺混合開發原理詳解

  • 開發步驟:1.在Android項目中通過原生代碼實現提供給React Native調用的原生功能;2.在Android項目中將編寫好的功能模塊進行註冊;3.定義功能模塊的Android包;4.在React Native項目中通過JavaScript代碼調用混合開發實現的Android平臺原生功能;
  • 開發特性:回調;Promise;發送事件到JavaScript;從StartActivityForResult中獲取結果;監聽生命周期事件;

13.React Native消息推送

13.1.iOS平臺消息推送機制

  • 所有的iOS設備的消息推送都會經過Apple的消息推送伺服器Apple Push Notification service(APNs),所有的推送消息由此伺服器進行消息的下發
  • 向APNs發送請求的伺服器需要配置Apple開發者賬號下的證書
  • APNs發現目標設備離線後,會先將請求的消息存儲起來,等設備上線後再進行消息的推送
  • iOS平臺的原生消息推送設置非常複雜,需要手動設置消息推送的開發者賬號證書、推送消息請求的伺服器證書、環境、編寫以及APNs交互的代碼
  • iOS平臺第三方消息推送框架會將開發的流程簡單化,我們只需要與極光平臺通過JPush API進行通信,JPush API提供了APNs Sender與Apple APNs Server進行通信,後續APNs與設備的通信與原生消息推送通信的過程一致,由APNs負責即可,前部分由極光平臺代理
  • JPush還提供了應用內消息推送部分,即App啟動時,內嵌的JPush SDK會開啟長連接到JPush Server,從而JPush Server 可以推送消息到App里

13.2.Android平臺消息推送機制

  • Android環境下的消息推送方案:輪詢(Pull)方式;長連接(Push)方式;使用XMPP、MQTT實現消息推送;
  • 綜合考慮,使用長連接(Push)方式在實現簡易度以及資源損耗方面可以找到一個比較好的平衡點
  • Android平臺第三方通過開發者集成JPush Android SDK到其應用中,JPush Android SDK創建到JPush Cloud的長連接,為App提供永遠線上的能力,當推送消息到達App時,只需要調用JPush API推送即可

13.3.React Native極光推送實戰

  • jpush-react-native
  • 需要註意Android的應用包名與iOS App的Bundle ID最好保持一致

14.IOS、Android平臺發佈與熱更新

14.2.快速生成平臺App圖標與啟動圖的方法

  • Ape Tools
  • makeappicon.com

14.3.iOS打包上架

  • 需要使用XCode進行打包,打包後的App可以直接通過XCode提交到App Store供Apple審核

14.4.Android打包上架

  • App打包開放得多,通過Android Studio工具打包後可以直接生成單獨的、可任意複製分發的Apk文件,用戶只需要下載apk文件即可在自己的真機上安裝

14.5.ReactNative熱更新

  • 用戶可以在不更新App的情況下進行App的熱更新,甚至支持增量熱更新,伺服器只需要給用戶下發新增的代碼與資源文件,React Native框架會自動進行JS Bundle文件的合併,App在重新載入了JS Bundle後,App的功能和內容也進行了更新 16
  • React Native框架會將我們開發的所有JavaScript代碼,包括React Native框架代碼、第三方組件代碼、業務邏輯代碼、圖片等資源都打包在一個JS Bundle文件中,React Native App運行時會載入這個JS Bundle文件
  • CodePush是微軟推出的用於Cordova框架與React Native框架App熱更新的框架,我們可以直接通過調用CodePush的SDK來快速、穩定的實現App的熱更新功能
  • 我們通過CodePush的CLI將更新的代碼包以及相關資源文件按照CodePush的格式打包後提交到CodePush雲平臺,用戶的設備會請求CodePush的伺服器詢問是否有文件更新

15.React Native 性能調試方法與技巧

15.1.性能調優基準參數

  • RAM 記憶體占用
  • JSC JavaScript堆記憶體占用
  • Views 當前屏幕中所有的view數量
  • UI FPS(幀率)
  • JS JavaScript幀率

15.2.常見造成App性能低下的原因

  • 1.console.log語句
  • 2.Navigator性能問題
  • 3.Touchable類組件使用問題
  • 4.改變圖片大小導致掉幀問題
  • 5.改變視圖時導致丟幀問題
  • 6.ListView組件性能問題
  • 7.在重繪一個沒有改變的視圖JS的FPS突然下降
  • 8.JavaScript線程繁忙時導致JS線程掉幀

15.3.查找性能問題以及調優方法

  • XCode的性能測試工具Instruments
  • Android原生的性能統計工具systrace

15.4.性能優化方法與組件

  • 1.性能優化原則:最核心就是儘量減少通過bridge的通信內容
  • 2.使用特定平臺組件:使用特定平臺的組件開發特定平臺的功能,如NavigatorIOS、TabBarIOS等
  • 3.高性能第三方組件:react-native-fast-image;react-native-largelist;react-native-display;react-native-swipeview;react-native-interactable;
  • 4.資源優化:React Native最終會將所有的資源文件打包成一個Bundle文件;控制Bundle的尺寸大小;除tab圖標外其他的圖片資源文件可以通過網路載入的方式進行載入,或者從圖片CDN上載入;Bundle文件還可以進行拆分,讓資源文件按需載入;

寫在後面


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 通過寫SQL查詢,我們可以發現很多簡單查詢語句主要就是由一些算術操作、欄位操作、函數還有各種子句構成的,今天我們從這個角度對MySQL單表查詢的基礎知識進行一個彙總。 __計算:__ 計算欄位 算術操作符 算術計算 欄位拼接 格式化顯示 __函數:__ 統計函數 其他常用函數 __子句:__ 排序 ...
  • 筆者大學所學電腦專業,讀書時接觸過Oracle、mysql和SQL SERVER,一度坐井觀天覺得資料庫應該也就這些了,但自筆者畢業進入數據倉庫這個行業,接觸的第一個商業資料庫即是Teradata,亦是接觸到的第一個MPP體系架構,先簡單談談個人對Teradata的認識吧 產品特點: 1.MPP架 ...
  • MySQL安裝 1.先去官網下載安裝包 官網: http://www.mysql.com 要下載社區版(community) 選對系統,選對你要的安裝包版本 點擊後就可以下載mysql了 2.下載完壓縮包之後解壓,並把解壓後的文件放到自己要放的文件夾中(最好不要出現中文目錄), 找到該文件夾下的bi ...
  • Redis介紹: Redis 是完全開源免費的,遵守BSD協議,是一個高性能的key-value資料庫。 Redis 與其他 key - value 緩存產品有以下三個特點: Redis支持數據的持久化RDB和AOF,可以將記憶體中的數據保存在磁碟中,重啟的時候可以再次載入進行使用。 Redis不僅僅 ...
  • MySQL Structured Query Language SQL簡介 SQL (Structured Query Language) 是具有數據操 縱和數據定義等多種功能的資料庫語言,這種語言具有交互性特點,能為用戶提供極大的便利,資料庫管理系統應充分利用SQL語言提高電腦應用系統的工作質量 ...
  • 當Redis客戶端出現請求超時的時候,需要檢查該時間點是否有慢查詢,從而分析出由於慢查詢導致的命令級聯阻塞。 ...
  • 引子 關於Django2版本連接MySQL發生的問題以及修改源碼的解決方法參考下麵這篇文章: Django與MySQL的交互 但是,上面這種修改源碼的方法在生產環境中使用的話會有很多問題。 本文為大家詳細講解如何在不修改Django源碼的情況下解決這個問題。 Django中的源碼解析 我們來看一下我 ...
  • 前言 前幾天有讀者找到我,說想要一套全面的Mysql面試題,今天陳某特地為她寫了一篇。 文章的目錄如下: Mysql面試題 什麼是SQL? 結構化查詢語言(Structured Query Language)簡稱SQL,是一種資料庫查詢語言。 作用:用於存取數據、查詢、更新和管理關係資料庫系統。 什 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...