亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.430618.com 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

課程介紹
本項目從拿到設計圖開始,從頁面適配、到交互效果、再到數據渲染,一步步帶著大家搭建自己的移動端 React 移動端應用。 項目中,不只包含 React 單頁應用+移動端布局及常用交互實現+真實的前后端數據交互等知識講解,還包含很多常見問題解決方案,如:better-scroll 網速差的情況下異步請求圖片導致不能拖到底部問題、ios 下微信內置瀏覽器跨域請求不能攜帶cookie的問題處理、使用了 better-scroll 之后鏈接失效的問題處理、移動端輸入框被鍵盤遮擋的問題…

學習目標
學完本視頻后,可以掌握 基于react-router 的 React 單頁應用的項目構建,viewport+vw+rem 的移動端頁面適配,iconfont 圖標處理,React 功能組件編寫,better-scroll 基本使用,上滑加載功能的實現,用戶登錄及未登陸狀態下不同的業務邏輯處理…通過本次課程的學習,可以帶著大家可以快速上手 React 的 移動端數據應用開發,幫助大家打造自己的 React 移動端項目

適用人群(學前要求):
1、掌握移動端布局及css3相關知識,熟悉移動端原生事件
2、掌握 React 基礎知識及npm使用
3、熟悉 ES6 最新語法
4、熟悉 Ajax 異步通信

第0集內容講解:課程介紹

1、介紹項目相關功能及交互

2、學前基礎介紹

3、課程說明

第1集內容講解:react的環境配置及項目視圖劃分

1、react 環境搭建

安裝:create – react – app(腳手架)

2、使用 React – router

安裝 react – router – dom(路由)

3、頁面視圖劃分

index ?/ work / message / login / course / lecturer

4、引入視圖文件

第2集內容講解:頁面適配方案及默認樣式初始

1、頁面的適配方案

默認樣式清除

2、viewport 視口

參數:

1)width

2)initial – scale

3)maximum – scale

4)user – scalable

3、相對單位適配

vw:100vw = 屏幕寬度

vh: 100vh = 屏幕高度

根節點字體大小:1rem = 1html的字體大小

4、默認樣式重置

第3集內容講解:header組件樣式

1、公共組件實現 – 頭部

2、公共組件實現 – 左側菜單按鈕

3、公共組件實現 – 右側 login 按鈕

4、公共組件實現 – logo 圖片

5、公共組件實現 – 返回按鈕

第4集內容講解:添加iconfont

1、圖標(fonticon)

圖標網站介紹:http://www.iconfont.cn/

2、圖標下載

菜單 / 登錄 / 推薦 / 返回 / 首頁 / 課程 / 講師 /

用戶名 ?/ 密碼 / 驗證碼 / 磚石 / 飛機 / 人物 / 推薦 / 留言

團隊 /消息 / 行政管理 / 電話

3、引入圖標字體文件

第5集內容講解:使用iconfont完善header組件

1、函數組件 – header組件

1、登錄圖標 – 引入類:iconfont

2、菜單圖標 – 引入類:iconfont

第6集內容講解:利用彈性盒模型的頁面架構和 footer 組件

1、類組件 – footer 組件

2、footer 布局實現

3、實現 footer 保持在屏幕最底部

1)彈性盒模型(怪異盒模型):display:flex

2)flex – direction:column

第7集內容講解:主菜單布局

1、Menu 布局

link to 跳轉

首頁

課程安排

講師團隊

2、實現左側主菜單列表布局樣式

小圖標(首頁 / 課程 / 講師)

橫線(border)

第8集內容講解:幻燈片布局

1、幻燈片切換布局

Tab

Nav

2、require 引入

3、Tab 樣式設置

4、Nav 樣式設置

第9集內容講解:首頁布局

1、首頁結構

引入組件

2、背景圖引入

3、按鈕樣式設置

漸變 backgroud:linear-gradient( )

圓角 border-radius

陰影 box-shadow

4、立即報名 結構

引入 函數式組件 – vip

5、設置不同屏幕尺寸(xs – sm – md – lg)的樣式

第10集內容講解:利用彈性盒模型的上下居中設置

1、妙味特色布局

函數式組件 – Miaov

2、左側字體圖標

鉆石 \ 頭像 \ 作品展示

背景、寬高、圓角:border:radius 、圖標顏色

最小高度:min-height

3、樣式設置

字體大小、行高、顏色、邊距、text-align:center

垂直居中:display:flex

第11集內容講解:利用網格布局的作品列表

1、學員作品結構(網格布局 )

類式組件 – worklist

display:grid(定義網格布局)

grid-template-columns(定義網格中的列)

網格大小(fr)

2、樣式設置

背景色 \ 邊距 \ 字體大小 \ 行高 \ 字體顏色

背景 \ 漸變 \ 最大寬度

3、loadMore(正在加載更多內容)

loding 圖

第12集內容講解:課程頁面視圖完善

1、課程頁面結構

圖片引入

表單

2、樣式設置

背景延伸

默認樣式清除(table \ td \ th)

第13集內容講解:可以通用不同結構的功能組件制作

1、講師團隊 結構

標題

講師頭像

講師名稱

切換tab

2、樣式設置

3、通用組件實現

功能相似、結構不一樣

不同結構的功能組件制作

第14集內容講解:完善講師頁面幻燈片結構

1、講師頁面幻燈片結構

講師頭像 / 講師名稱 列表實現

id / name / img

2、樣式設置

nav 位置

3、結構當成參數傳進來

第15集內容講解:為頁面鏈接添加觸碰效果

1、加入我們(join-us)

函數式組件 JoinUs

2、加入我們結構

a 鏈接跳轉

圖標(課程顧問圖標 ?\ 問答圖標 \ 客服圖標 \ 行政前臺圖標 )

3、樣式設置

默認樣式清除

字體顏色:半透明

背景 \ 邊距 \ 背景位置設置

字體大小 \ 行高

4、active 按下的樣式設置

設置 a 標簽默認樣式

5、引入組件

job.js

第16集內容講解:使用dangerouslySetInnerHTML添加作品詳情

1、作品詳情結構

縮略輪播圖

標題

內容

2、dangerouslySetInnerHTML

添加作品詳情的內容

3、內容詳情

背景色設置

第17集內容講解:完善作品詳情頁面

1、點贊

狀態:未點贊 / isGood (已經點贊)

點贊動畫特效:transition:-1s cubic-bezier( )

2、留言評論

類組件 – 留言列表(MessageList)

留言列表狀態

沒有留言狀態

3、最底部加載

4、回復本貼按鈕

圖標

文字

第18集內容講解:留言頁面

1、留言頁面 – message

頭部 – Header

返回 – back

輸入文本框 – textarea

默認樣式清除

寬高 / 邊框 / 字體 / 行高 / 字體大小

box – sizing:border – box

提交按鈕

 

第19集內容講解:登陸界面的3D卡片布局

1、登錄界面 – Login

頭部 – Header

返回 – back

背景圖 – loginPage

登錄 / 注冊標題 – loginTitle

2、登錄(login – form)\ 注冊(register – form)

prespective(景深)

transfrom-style:preserve-3d(父級進行3d變換時,保留子元素的3d變換)

隱藏背面(backface – visibility:hidden)

第20集內容講解:完善登陸界面布局

1、立即登錄頁面(LoginForm)

圖標

描述文字

用戶名:

密碼:

驗證碼:線上地址

立即登錄按鈕:

沒有賬號按鈕

2、立即注冊頁面(RegisterForm)

調整頁面樣式

第21集內容講解:利用children屬性,制作可以通過各種結構的menu交互組件

1、分析菜單的展開收縮功能

類組件 – MenuPage

2、引入

header

menu

3、傳遞結構

第22集內容講解:添加菜單動畫

1、點擊菜單按鈕 – 執行chageOpen

2、onTouchEnd(按下抬起)

3、點擊展開 – 點擊收縮過渡動畫

transition

transfrom

4、onTouchStart

處理橫向滾動條

全局阻止默認事件

第23集內容講解:跳出React阻止默認事件的深坑完善菜單動畫

1、介紹不允許阻止默認事件原因

2、講解阻止默認事件

3、阻止默認事件處理,禁止頁面滑動

componentDidMout

view.addEventListener

4、阻止事件冒泡

第24集內容講解:阻止了默認事件之后,超鏈接跳轉的處理

1、點擊菜單,a標簽跳轉

menuA / headerA

首頁/課程安排/講師團隊

2、介紹通過路由自帶方法

push

3、講解原生 js 的方法

添加事件:touchend

修改 widdow.location.href

通過判斷 排除 href 為空的 a 標簽

4、添加 touchmove 事件

判斷是否發生滑動

按下 a 標簽跳轉

滑動 a 標簽不跳轉

5、bug介紹:在部分安卓手機下,手指觸碰屏幕時,如果觸碰面積不大,

會誤觸 touthmove 事件

講解解決 bug 方法

第25集內容講解:幻燈片動畫制作_1

1、幻燈片動畫制作 – tab組件

React 生命周期 – Mounting 掛載階段

componentDidMount

2、給 tab 加上點擊事件

tab.addEventListener

touchstart / touchmove / touchend

3、手指按下的位置(startPoint):

x:e.changedTouchhes[0].pageX

y:e.changedTouchhes[0].pageY

4、手指滑動的位置(nowPoint)

x:nowPoint.x – startPoint.x

y:nowPoint.y – startPoint.y

5、當用戶滑動距離超過100px 時,用戶需要進行切換

第26集內容講解:幻燈片添加無縫處理

1、添加動畫

picList.style.transition

2、添加無縫

picList.innerHTML += picList.innerHTML

picList.style.width=picList.length + “00vw”

3、第0張和最后一張,劃出邊界的風險的處理辦法

第27集內容講解:判斷滑動方向修復滑動時幻燈片的抖動

1、處理左右滑動帶動上下滑動問題

當前是否按照我想要的方向進行滑動

判斷用戶的滑動方向

2、每次第一次滑動,當判斷出方向后,不再重復判斷方向

isFirst && Math.abs(dis.x – dis.y)>2

第28集內容講解:完善幻燈片的制作添加自動輪播

1、幻燈片導航同步

setNav

2、幻燈片自動播放

autoplay

3、下一張

toNext

4、定時器

timer

無縫自動播放

延遲時間:setTimeout

清除定時器:clearInterval

第29集內容講解:登陸和注冊界面的受控組件制作

1、分析登錄注冊的功能

界面切換

受控組件

驗證碼切換

2、登錄接口

/ user/login

POST:

verify:驗證碼

username:用戶名

passwore:密碼

添加受控組件

username / passwore / verify

3、登錄接口

/ user/login

POST:

verify:驗證碼

username:用戶名

passwore:密碼

repassword:確認密碼

添加受控組件

username / passwore / verify / repassword

第30集內容講解:完善登陸注冊界面的3D翻頁和驗證碼交互

1、3D翻頁

changeDeg

2、傳遞方法

loginFrom

registerForm

3、點擊立即登錄 / 立即注冊切換動畫

4、驗證碼(verify)交互

verifyimg:

點擊驗證碼,切換

驗證碼輸入框獲取焦點時,生成驗證碼(onFocus)

第31集內容講解:實現注冊功能

1、域名地址:https:www.koocv.com/

注冊地址:/ user/register

異步通信:mpn i axios (請求方式)

提交地址:https:www.koocv.com/user/register

提交方式:POST

2、提交信息:

verify;

username;

passwore;

repassword

3、axios

qs.stringify 把對象轉換成 URL

4、跨域請求

withCredertials 攜帶cookie

5、返回值

code:0 ?msg:注冊成功

code:1 ?msg:驗證碼錯誤

code:2 ?msg:密碼和重復密碼不一致

code:3(注冊失敗) ?msg:提示不同的注冊失敗原因

code:4 ?msg:注冊已關閉(后臺可控制)

6、注冊成功,返回用戶登錄界面

第32集內容講解:對接登陸接口實現登陸功能

1、引入axios和qs

2、登錄地址:/ user/login

3、提交地址:https:www.koocv.com/user/login

4、返回值

code:0 ?msg:登錄成功

code:1 ?msg:驗證碼錯誤

code:2(登錄失敗) ?msg:提示不同的登錄失敗原因

5、登錄成功 – 返回原頁面

window.history.back(返回上一頁)

window.location.href=”/”

第33集內容講解:獲取用戶登錄狀態

1、用戶登錄和未登錄狀態不同邏輯處理

獲取用戶是否登錄

定義方法:getLoginState

2、是否登錄接口

/user/islogin

3、axios.post

https:www.koocv.com/user/islogin

4、組件更新

重新請求用戶名

React 生命周期

更新階段:componentDidUpdate

第34集內容講解:利用context把登陸狀態傳遞給各個子組件

1、獲取登錄的狀態,不停執行更新,處理死循環問題

2、跨組件通信 (context)

chidContextTypes

prop-types

getchidContext

ContextTypes

第35集內容講解:登陸和未登錄狀態不同的邏輯處理

1、實現用戶已經登錄,不用進入login界面

2、React 重定向

Redirect

3、登陸和未登錄狀態切換

登錄:顯示用戶名

未登錄:顯示登錄按鈕圖標

4、跳轉回復本帖頁面,不顯示login

第36集內容講解:作品列表數據獲取

1、上滑加載 – 通用組件

類組件 – loadMore

傳遞結構

children

2、首頁獲取的數據傳遞內容

order:desc(降序) / asc(升序)

sort:

sort(后臺指定排序)

id(加入的ID)

update_time(修改時間)

category_id:1 和 2 ?1代表作品列表 / ?2代表講師列表

recommend:首頁推薦位置,首頁推薦值為1,全部為0

3、作品列表數據獲取

第37集內容講解:上滑加載更多內容-1

1、數據添加至結構

數據結構:數組

數組內容:

id(唯一)

category_id

item.title(標題)

item.good(點贊個數)

item.message(留言個數)

item.icon(圖片)

2、上滑加載更多

loading

加載顯示更多內容

loadEnd

加載完成,不顯示加載圖標

顯示:這里是底線了

第38集內容講解:上滑加載更多內容-2

1、獲取滾動條的位置

y = window.scrollY

屏幕高度winH:clientHeight

頁面高度pageH:scrollHeight

2、頁面可滑動最大高度maxY=頁面高度pageH – 屏幕高度winH

3、頁面滑動快到底部時請求新的數據

第39集內容講解:為各個視圖添加菜單交互

1、各個視圖添加菜單交互

MenuPage 菜單頁面的交互

課程安排

course-page

講師團隊

lecture-page

學員作品

work-page

2、React 生命周期 Unmounting 卸載階段

componentWillUnmount

卸載事件:window.removeEventListener

第40集內容講解:獲取講師列表數據

1、引入請求數據 ?– axios / qs

order:”desc”

sort:”id”

category_id:2

2、組件加載

componentDidMount( )

3、妙味團隊 列表數據獲取

4、妙味團隊 Tab切換功能

getTab 方法

第41集內容講解:講師頁面彈窗結構

1、引入Popup

2、講解彈窗結構(popup)

全屏半透明

頭像

標題

關閉按鈕

內容區域

內容超出滾動條

第42集內容講解:子滾動條滾動帶動父級滾動條滾動的問題解決

1、滾動條問題處理

簡單 demo 展示滾動條 bug

2、解決方案1

布局解決方案:不使用系統滾動條,使用原生滾動條

弊端:原生滾動條在滾動會有下拉回彈或者內容背景菜單顯示

第43集內容講解:better-scroll的使用說明

1、解決滑屏問題的利器

better-scroll

2、引入 bscroll.js 文件

3、生成布局

4、添加滾動

startY(左右滑動)

scrollY(上下滑動)

freescroll(左右上下滑動)

bounce(回彈動畫)

refresh方法

第44集內容講解:添加better-scroll

1、項目引入 better-scroll

npm i better-scroll -s

2、首頁滾動調整

PageScroll

3、是否阻止瀏覽器默認行為

preventDefault

preventDefaultException

tagName

第45集內容講解:better-scroll阻止默認事件后,導致的鏈接不可用問題解決

1、問題 – a 標簽點擊失效 (部分)

2、解決方案

獲取所有 a 標簽

循環判斷給 a 標簽加點擊事件

第46集內容講解:利用better-scroll完善上拉加載的效果

1、上拉加載

pullUpLoad:ture / false(是否需要)

threshold:配置開始加載的時機,距離底部多久開始加載

2、已經加載

finishPullUp

3、動態關閉上拉加載

closePullUp

4、學員作品跳轉失效

事件代理/事件委托方法

第47集內容講解:完善教師彈窗

1、彈窗添加

openPopup

2、點擊顯示彈窗

popupPage

onTouchStart

onTouchEnd

getPopupDate

第48集內容講解:為講師彈窗添加滑動

1、綁定數據

data.icon

data.title

data.content

2、添加滾動條

overflow-y:hidden

3、講師介紹彈窗關閉

clossPopup

點擊空白區域彈窗關閉

點擊關閉按鈕彈窗關閉

4、添加滑動

componentDidMount

new BScroll

bounce:false(取消回彈)

 

第49集內容講解:合并菜單和滑屏組件

1、給各個界面加上滑屏

2、合并菜單和滑屏組件

引入組件:PageScroll

3、學員作品點擊失效

第50集內容講解:添加詳情頁的loading動畫

1、添加學員作品詳情頁跳轉id :item.id

2、loading動畫

Loading

3、CSS3動畫

animation

4、判斷數據是否拿到數據

是:直接加載數據

否:Loading狀態

第51集內容講解:文章詳情頁面的數據獲取及better-scroll在差網速下的bug修復

1、學員作品詳情頁數據添加

getWordData

url

qs.stringify

article_id

data

data.iamge_path

data.title

data.content

data.good

2、refresh方法

當DOM內容更新,重新計算better-scroll

第52集內容講解:點贊功能-1

1、判斷是否點贊

data.good

狀態:isgood

getIsGood

2、是否點贊接口

lecturer/getgood

3、POST參數

article_id:文章id

4、返回值

code:0 ?(點贊)

code:1(mag:未登錄)

code:2(mag:收藏文章id不能為空)

code:3(mag:未點贊)

第53集內容講解:點贊功能-2

1、點贊功能分析

已經點贊:取消點贊

沒有點贊:開始點贊

2、判斷是否登錄

接口:user / islogin

返回值:code:0 / code:1

未登錄:實現跳轉 login 界面

已登錄:實現點贊或者取消點贊

第54集內容講解:點贊功能-3

1、判斷是否點贊

判斷 res.data.code 的值

code:1(點贊)/ code:3(未點贊)

2、點贊 / 點贊數

good 的值

3、取消點贊

接口:lecturer/cancelgood?

POST參數:

goodid:在獲取是否點贊接口中獲取到的id

article_id:文章id

返回值:

code:0(mag:取消點贊成功)

code:1(mag:未登錄)

code:2(mag:文章id不能為空)

code:3(mag:收藏id不能為空)

4、點贊和未點贊切換動畫

5、解決用戶快速點擊重復提交問題

6、總結點贊功能實現過程

第55集內容講解:獲取留言列表

1、留言列表接口

lecturer/getconment?page=1&rows=20

2、留言列表

MessageList

3、留言狀態:

有留言 :顯示留言

沒留言 :搶沙發

第56集內容講解:提交留言

1、留言評論

接口:lecturer/addconment

POST參數:

article_id:文章id

content:評論內容

2、提交留言

postMessage

axios.post

withCredentials:true

3、返回值

彈窗:判斷code 的值,code等于 0(評論成功)

第57集內容講解:細節修復

1、a 按下的效果失效修復

active

2、事件代理,判斷是點擊行為還是滑屏修復

3、學員作品有時候刷不到底部修復

第58集內容講解:安卓下真機測試-修復首頁布局

1、真機測試 – (堅果pro手機)自帶瀏覽器

2、解決學員作品圖片撐開整行 bug

3、真機上逐個測試相關功能

第59集內容講解:iOS真機測試–vh問題處理

1、測試:iphone6 ?ios 11.3系統版本,微信內置瀏覽器測試

2、測試功能:

1)登錄

2)菜單

3)上滑加載

4)左右滑屏

5)課程安排

6)講師團隊

7)講師彈窗及彈窗滑屏

8)學員作品詳情

9)點贊

3、修復登錄界面的問題

登錄界面 – 底部白邊

登錄界面 – 頂部被蓋住

4、頁面最底部 – 未顯示完整問題處理

vh問題處理

動態獲取可視區高度:window.innerHeight

第60集內容講解:IOS下微信內置瀏覽器跨域請求不攜帶cookie處理

1、修復驗證碼輸入錯誤后,再次輸入正確的驗證碼登錄不成功bug

2、proxy 代理服務器講解

轉發

請求重定向

3、替換請求地址

第61集內容講解:軟鍵盤遮擋輸入框處理思路

1、修復軟鍵盤遮擋輸入框問題

2、獲取軟鍵盤本身高度

3、獲取鼠標聚焦坐標(input坐標)

初始坐標

當前坐標

4、計算輸入框移動距離

5、修改頁面的top值

分享到:
標簽:React IT編程 互聯網 學習教程
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定