背景
大前端當下內卷愈演愈烈,各種技術風起雲湧,無數小夥伴感慨「學不過來了!」。在我們身邊也經常會看到各種焦慮,傳統的安卓IOS單端開發競爭力越來越弱,互聯網追求的短平快新讓原生開發者感到壓力山大,移動端開發和前端開發是兩套完全不同的技術棧,這對很多原生開發者來說想踏足前端領域變得非常困難。甚至有人想往大前端全棧路線發展,但不知從何處下手。
現狀
想系統學習下跨平臺技術,互聯網上多數教程要麼隻言片語,淺嘗輒止,要麼技術老舊,不再適用,很多人都希望有一套緊跟當前時代,全面系統的跨平臺教程。
在當前諸多跨平臺技術之中,ReactNative尤其收到追捧,一方面因爲其快速高效的開發模式,迎合了現在互聯網公司追求短平快、高人效的需求,另一方面是因爲ReactNative基於React,和Web、小程序打通一套技術棧,後期非常方便邁向大前端全棧,是一個高性價比、高可用性的技術選型。
課程特色
本套課程將通過18個章節,全面、詳盡、由淺入深地學習ReactNative各項開發技術。在內容上包含:環境搭建、系統組件、系統Api、動畫系統、TypeScript、Context、HOC高階組件、Memo、Ref轉發、橋接原生等模塊,在數量上包含:18個章節、150個小節、30+小時課時、數千行手敲代碼、大小2個實戰項目。完成本套課程的學習,將具備獨立參與大型項目開發能力;並通過ReactNative間接獲得React、小程序等全棧擴展能力,實現自身價值突破。
視頻介紹
課程大綱
第一章:課程介紹-把握整套課程知識結構和大綱
1.1 課程大綱介紹,從整體上了解本套課程的學習內容
1.2 課程知識導圖展示,從框架上把握課程知識結構
1.3 課程代碼,及資料下載方法
第二章:學前準備-瞭解ReactNative優勢和本套課程的學習目標
2.1 跨平臺的優勢和機遇,在移動端內卷的當下,只有跨平臺才能破局重生
2.2 各種跨平臺方案的百家爭鳴
2.3 ReactNative和Flutter的比較,客觀比較兩者優缺點,從需選擇
2.4 學習ReactNative的優勢,增強學習本套課程的信心
2.5 ReactNative大廠級應用
2.6 本套課程的學習目標
第三章:開發環境搭建和demo運行-爲正式學習做好前期準備
3.1 開發環境介紹:JS端環境+Native端環境
3.2 安裝node
3.3 安裝watchman
3.4 安裝VSCode
3.5 安裝AndroidStudio
3.6 安裝sdk platform和sdk tools
3.7 基於AndroidStudio創建安卓模擬器
3.8 以及針對m1平臺創建安卓模擬器的解決方法(新)
3.9 使用cli命令創建ReactNative工程,並啓動運行
第四章:爲“原生開發”同學補充前端基礎-掌握前端開發必備知識
4.1 學習js的基本使用,瞭解如何申明變量、函數、以及js的一些基本特性
4.2 瞭解什麼是ES5、ES6,掌握ES6常用的一些方法
4.3 瞭解什麼是babel以及常見的配置
4.4 學習CSS-flex佈局基礎,爲後面正式學習rn佈局打下基礎
4.5 npm是什麼,npm庫如何檢索、安裝和卸載
4.6 使用nrm管理npm源
第五章:爲“前端開發”同學補充原生基礎-掌握原生開發必備概念
5.1 以安卓爲例,學習如何連接設備,以及開發中常用的adb命令
5.2 以安卓爲例,瞭解移動端應用的ui結構
5.3 以安卓爲例,講解RN開發中經常會涉及到的原生文件
5.4 瞭解RN組件和原生組件的對應關係
5.5 原生開發語言的選擇,Android: Java/Kotlin,IOS: OC/Swift
5.6 移動端應用的版本發佈以及主流的應用市場
5.7 移動端特有的生產熱修復機制和應用場景
5.8 移動設置的版本兼容選擇
第六章:React基礎知識和工程結構-掌握核心文件的用法和職能
6.1 工程目錄結構介紹,瞭解每個文件的作用和職責
6.2 構建通用源碼目錄結構,好的工程先從模塊劃分開始
6.3 package.json全局大管家文件
6.4 export和import語句,三種導入導出類型
6.5 class組件的標準寫法和生命週期
6.6 函數式組件的優勢和常用hook使用方法(新)
6.7 JSX語法:高效開發源自於此
6.8 計數器ui練習:簡單的應用,爲下一章詳細學習做準備
6.9 作業:獨立完成簡易計時器功能
第七章:系統組件精講-全面掌握系統組件的使用方法以及多種屬性
7.1 章節介紹:全面學習系統組件,詳解每一個組件的用法
7.2 View:ui構建的基石,一切頁面的起點
7.3 Text:使用佔比最高的ui組件,使用簡單,深入複雜
7.4 通過Image組件構建精美ui
7.5 ImageBackground:View和Image的結合體
7.6 強大的TextInput,唯一且強大的輸入組件
7.7 TouchableOpacity:最好用的點擊組件
7.8 TouchableHighlight:效果豐富的點擊組件,但使用略顯麻煩
7.9 TouchableWithoutFeedback:幾乎不用的點擊組件
7.10 Button:使用簡單但樣式固定
7.11 強大的Pressable,幫你實現複雜的交互效果(新)
7.12 ScrollView:基礎滾動組件,快速實現列表渲染
7.13 FlatList:一個高性能的列表組件
7.14 通過學習SectionList,實現複雜的多分組列表
7.15 RefreshControl:下拉刷新神器
7.16 使用Modal實現不同樣式的自定義彈窗(新)
7.17 狀態欄適配的難題交給StatusBar
7.18 Switch:開關切換,一行搞定
7.19 作業:獨立完成兩數相加計算功能
第八章:夯實基礎-常用api-深刻理解RN核心api的功能
8.1 章節介紹:全面學習系統api,詳解每一個api的用法場景
8.2 Alert和console:你不知道的調試小技巧
8.3 Dimensions/useWindowDimensions:獲取屏幕信息
8.4 使用Platform類輕鬆獲取平臺屬性
8.5 StyleSheet構建靈活組件樣式
8.6 Linking:一個api幫你省掉50行代碼
8.7 PixelRatio:像素比例工具
8.8 BackHandler:針對安卓返回鍵的適配不再是難題
8.9 PermissionAndroid:輕鬆解決原生動態權限問題
8.10 Vibration:簡單好用的震動交互
8.11 ToastAndroid:安卓平臺的提示工具
8.12 Transform:矩陣變換的僞3D效果
8.13 Keyboard:鍵盤操作有神奇
8.14作業:每個api練習一遍
第九章:動畫系統-全面掌握RN動畫所有技巧,挑戰90%動畫效果
9.1 簡單示例學習基礎動畫方法
9.2 四大動畫類型的使用
9.3 六中支持動畫的系統組件
9.4 平移動畫的多種屬性支持
9.5 Animated.decay衰減動畫函數
9.6 Animated.spring彈動動畫函數
9.7 Animated.timing時間動畫函數
9.8 Animated.ValueXY矢量動畫
9.9 四種組合動畫
9.10 解決跟隨動畫延遲難題
9.11 解決自定義Modal背景動畫難題
9.12 LayoutAnimation:超級簡單又好用的佈局動畫
9.13 課後作業練習
9.14 本章小結
9.15 作業:獨立完成添加購物車動畫
第十章:小試牛刀-練習項目,賬號密碼本-鞏固強化基礎階段知識
10.1 練習項目賬號管理,演示與分析
10.2 初始化項目和頁面框架
10.3 自定義封裝添加賬號彈窗
10.4 使用UUID和AsyncStorage保存賬號數據
10.5 繪製賬號列表ui
10.6 賬號列表實現展開收起功能
10.7 添加賬號後實時刷新列表
10.8 實現賬號列表細節交互
10.9 項目打包發佈
10.10 本章小結
10.11 作業:獨立完成賬號密碼本
第十一章:練兵場-TypeScript快速進階-掌握企業級開發的必備利器
11.1 TypeScript介紹和自身優勢,企業級開發中的必備利器
11.2 TypeScript安裝和項目配置
11.3 number、string、boolean三大基礎類型
11.4 數組、元組、枚舉類型的使用
11.5 聯合類型和字面量
11.6 函數類型
11.7 類型文件和命名空間
11.8 課後作業和本章總結
11.9 作業:複習每個TS類型及使用方法
第十二章:進階學習-Context上下文-深刻理解解耦的精髓
12.1 Context上下文介紹和演示
12.2 Context上下文實例開發:應用主題配置
12.3 Context上下文內容小結
12.4 作業:使用Context傳遞登陸信息
第十三章:進階學習-HOC高階組件-強大的解耦和封裝技巧
13.1 HOC高階組件介紹
13.2 高階組件案例演示1:Hack渲染函數
13.3 高階組件案例演示2:Hack生命週期
13.4 課後作業和本章小結
13.5 作業:獨立實現一個首頁彈窗模塊高階組件
第十四章:高手必學-memo與性能優化-幾種必備memo技巧
14.1 函數式組件和Class組件攔截多餘渲染的方法
14.2 使用useMemo緩存計算結果
14.3 使用useMemo緩存ui以及useCallback緩存回調函數
14.4 hermes引擎的開啓,提升啓動速度、壓縮包體積(新)
14.5 課後作業和本章小結
第十五章:高手必學-ref轉發-具備更強的自定義組件能力
15.1 ref轉發案例演示1:外層操作原始組件
15.2 ref轉發案例演示1:對外暴露api
15.3 課後作業和本章小結
15.4 作業:獨立實現一個函數式組件
第十六章:高手必學-橋接原生-精通4種橋接方式
16.1 橋接原生介紹及常見的應用場景
16.2 橋接原生實現js層調用原生方法
16.3 橋接原生實現js層獲取原生常量(同步獲取)
16.4 橋接原生原子組件:實現原生組件
16.5 橋接原生原子組件:JS層調用原生組件
16.6 橋接原生原子組件:封裝原生組件屬性
16.7 橋接原生原子組件:原生事件回調JS層
16.8 橋接原生原子組件:JS層調用原生api
16.9 橋接原生容器組件
16.10 課後作業和本章總結
16.11 作業:獨立實現兩個原生組件
第十七章:實戰項目-高仿商業級小紅書App
17.1 初體驗使用小紅書App,梳理應用的使用流程和核心頁面,明確實戰項目仿寫功能以及達成目標
17.2 需求分析,整理項目中會用到的技術點,構思實現方案或者尋找第三方庫支持,模擬企業級開發中技術方案評審流程
17.3 任務拆分,並開始初始化工程,搭建應用框架,完成基礎配置和部分三方庫引入
17.4 使用flex佈局和多種組件實現歡迎頁面和登陸頁面
17.5 使用slice函數實現登陸頁面手機號碼分段顯示格式
17.6 使用Linking系統api快速實現H5協議查看功能
17.7 使用async-storage實現登陸信息的存儲和自登陸流程
17.8 使用react-anvigation構建BottomTab主頁
17.9 自定義首頁標題欄,實現切換Tab動畫笑話
17.10 封裝首頁標題欄爲獨立組件,定義Props和事件回調
17.11 使用自定義Modal技術,封裝滾動頻道選擇器實現聯動切換效果
17.12 使用FlatList實現首頁列表渲染
17.13 使用SectionList構建“我的日常”頁面,並自定頁面跳轉動畫
17.14 使用StatusBar實現狀態欄模式動態切換
17.15 監聽頁面滾動距離,實現滾動漸隱漸顯效果
17.16 使用LinearGraident組件實現精美的線性漸變按鈕效果
17.17 用巧妙的方法實現橫向瀑布流佈局
17.18 自定義“購物”頁面標題欄組件,實現神奇的搜索框無縫切換效果
17.19 實現頂部品牌輪播組件
17.20 使用flex-wrap實現自動換行伸縮佈局
17.21 使用FlatList實現商品列表
17.22 使用FlatLIst構建“消息頁面”
17.23 SectionList構建“我的”頁面,利用SectionHeader和ListHeader渲染頭部
17.24 使用Animated.Image實現頂部頭像滾動出現動畫
17.25 巧用“高階組件HOC”解偶側拉菜單的實現
17.26 如何實現滑動Tab切換?react-navigation來幫忙
17.27 如何更高效的背景漸變?還有setNativeProps這個高招
17.28 使用SectionList巧妙構建“文章詳情”頁
17.29 如何實現評論區的二級評論,有一個簡單的方法
17.30 巧妙實現點贊按鈕的心跳動效
17.31 退出登陸流程打同,應用生命週期閉環
17.32 介紹兩個RN熱修復方案:CodePush和Pushy
17.33 選擇Pushy作爲方案,在項目中集成
17.34 修改原生端項目打包,構建生產發佈版本,併發布Pushy平臺
17.35 在項目中實現補丁加載流程,併發布補丁,測試是否修復成功
17.36 項目收尾,整理代碼和模塊
17.37 作業:跟隨教程獨立完成整個項目的開發
第十八章:課程總結
18.1 課程內容回顧
18.2 關鍵知識點總結
18.3 後續學習建議