精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

優(yōu)雅的 React 源碼調(diào)試方式

開發(fā) 前端
用了 react 比較長(zhǎng)時(shí)間后,自然會(huì)想調(diào)試下源碼來(lái)深入下,但是常規(guī)的調(diào)試方式只能調(diào)試 react-dom.development.js,雖然能理清邏輯,但是對(duì)應(yīng)不到源碼里的哪些包哪些文件,總感覺和最初的源碼還有一段距離。

什么?調(diào)試 React 源碼還有優(yōu)雅和不優(yōu)雅之分?

別著急,我們先來(lái)聽個(gè)故事:

東東是一名前端工程師,主要用 React 技術(shù)棧,用了多年之后想深入一下,所以最近開始看 React 源碼。

他把 react 和 react-dom 包下載了下來(lái),在項(xiàng)目里引入,開發(fā)服務(wù)跑起來(lái)后,打開 Chrome Devtools 打斷點(diǎn)調(diào)試。

圖片

這樣調(diào)試了一段時(shí)間之后,他有了一些困惑:

這樣調(diào)試是可以的,但是總感覺和源碼有段距離,因?yàn)檎{(diào)試的是 react-dom.development.js

圖片

而源碼里這些邏輯是分散在不同的包里的,所以就算搞懂了邏輯,也不知道這些邏輯在哪些包里,只能靠搜索來(lái)定位。

圖片

所以他就在想,是不是有更好的調(diào)試方式,能夠調(diào)試 React 最初的源碼呢?

于是,他跑來(lái)問(wèn)我:光哥,你調(diào)試 React 源碼會(huì)有這些問(wèn)題么?你是怎么調(diào)試的呀?

我說(shuō),確實(shí),我最開始也是調(diào)試的 react-dom.development.js,但是現(xiàn)在已經(jīng)能直接調(diào)試 React 最初的源碼了,而且是在 VSCode 里調(diào)試的,點(diǎn)擊調(diào)用棧能直接打開對(duì)應(yīng)的 React 源碼文件并定位到對(duì)應(yīng)行列號(hào):

圖片

圖片

哇哦,這就是我想要的調(diào)試效果,這是怎么做到的呀。

想實(shí)現(xiàn)這樣的調(diào)試效果確實(shí)還有點(diǎn)復(fù)雜,我們一點(diǎn)點(diǎn)來(lái)看:

首先,我們要做到在 VSCode 里調(diào)試 React 項(xiàng)目,而不是在 Chrome Devtools 里,這樣才能做到直接打開對(duì)應(yīng)的文件:

用 VSCode 調(diào)試 React 項(xiàng)目

我們用 create-react-app 創(chuàng)建一個(gè) react 項(xiàng)目,然后 npm run start 跑起來(lái)。

這時(shí)候?yàn)g覽器訪問(wèn)就可以用 Chrome Devtools 調(diào)試了:

圖片

但我們的目標(biāo)是在 VSCode 里調(diào)試,所以要添加一個(gè) VSCode 的 debugger 配置:

圖片

在根目錄下建一個(gè) .vscode/launch.json 的文件,添加一個(gè) chrome 類型的調(diào)試配置,輸入調(diào)試的 url。

然后點(diǎn)擊 debug 啟動(dòng):

圖片

這時(shí)候就可以在 VSCode 里直接打斷點(diǎn)調(diào)試了:

圖片

用 VSCode 調(diào)試肯定會(huì)比 Chrome Devtools 方便一些。但這不是我們最主要的目的,現(xiàn)在調(diào)試的依然是 react-dom.development.js:

圖片

那怎么調(diào)試 react 最初的源碼呢?

這就涉及到 sourcemap 的作用了:

sourcemap

JS 代碼經(jīng)過(guò)編譯,會(huì)產(chǎn)生目標(biāo)代碼,但同時(shí)也會(huì)產(chǎn)生 sourcemap。sourcemap 的作用就是映射目標(biāo)代碼中的位置和源碼中的位置。

圖片

比如源碼中的第 3 行第 5 列的代碼對(duì)應(yīng)著編譯后的第 1 行第 10 列的代碼。

類似這樣的映射有很多,經(jīng)過(guò)編碼以后是這樣的:

圖片

在 js 文件最后一行,加上這樣一行注釋就可以關(guān)聯(lián) sourcemap:

//# sourceMappingURL=http://example.com/path/to/your/sourcemap.map

調(diào)試工具支持解析 sourcemap 來(lái)映射調(diào)試的代碼位置到源代碼中的位置。

比如 chrome devtools 的 Sources 面板就會(huì)提示從哪個(gè)文件 source mapping 過(guò)來(lái)的,點(diǎn)擊鏈接還可以跳到映射之前的文件:

圖片

同樣,VSCode Debugger 也支持 sourcemap,有個(gè) sourceMaps 的調(diào)試配置選項(xiàng)來(lái)開啟和關(guān)閉 sourcemap 功能,默認(rèn)開啟。

圖片

那這么說(shuō)我們只要讓 react-dom.development.js 關(guān)聯(lián)上 sourcemap,就能調(diào)試最初的 React 源碼了?

理論上是這樣的,但是現(xiàn)在下載的 react、react-dom 包里都不帶 sourcemap,我們得把 React 源碼下載下來(lái)自己 build:

build 出帶有 sourcemap 的 react 包

用 npm 下載的 react 包是這樣的:

圖片

而我們需要的是帶有 sourcemap 的代碼,也就是這樣的:

圖片

這就要下載 react 源碼自己 build 了:

git clone https://github.com/facebook/react

下載下來(lái)的代碼執(zhí)行 npm run build 就能看到 build 的產(chǎn)物:

圖片

這里的 build/node_modules 下的 react 和 react-dom 包就是我們需要的。

但是現(xiàn)在 build 出的代碼并沒(méi)有帶 sourcemap,需要改造下 build 流程。

圖片

build 命令執(zhí)行的是 ./scripts/rollup/build.js,打開這個(gè)文件做一些修改。

找到 rollup 的配置,添加一行 sourcemap: true,這個(gè)很容易理解,就是讓 rollup 在構(gòu)建時(shí)產(chǎn)生 sourcemap:

圖片

再跑 npm run build,會(huì)報(bào)這樣的錯(cuò)誤:

圖片

某個(gè)轉(zhuǎn)換的插件沒(méi)有生成 sourcemap。

這個(gè)是因?yàn)闃?gòu)建的過(guò)程中會(huì)進(jìn)行多次轉(zhuǎn)換,會(huì)生成多次 sourcemap,然后把 sourcemap 串聯(lián)起來(lái)就是最終的 sourcemap。如果中間有一步轉(zhuǎn)換沒(méi)有生成 sourcemap,那就斷掉了,也就沒(méi)法把 sourcemap 串聯(lián)起來(lái)了。

這個(gè)問(wèn)題的解決只要找出沒(méi)有生成 sourcemap 的那幾個(gè)插件注釋掉就可以了:

在 getPlugins 方法里,把這樣 4 個(gè)插件給注釋掉:

圖片

這個(gè)是刪除 use strict 用的,可以去掉。

圖片

這個(gè)是生產(chǎn)環(huán)境壓縮代碼的,也可以去掉。

圖片

這個(gè)是用 prettier 格式化代碼的,也可以去掉。

圖片

這個(gè)是添加一些頭部的代碼的,比如 Lisence 等,也沒(méi)啥用,可以去掉。

去掉這四個(gè)插件之后,再運(yùn)行 npm run build,這時(shí)候就能正常進(jìn)行構(gòu)建了,然后產(chǎn)生的代碼就是帶有 sourcemap 的:

圖片

圖片

這樣我們就成功的 build 出了帶有 sourcemap 的 react 包!

接下來(lái)只剩最后一步,用上 sourcemap,實(shí)現(xiàn)直接調(diào)試 React 最初的源碼,

應(yīng)用 sourcemap,調(diào)試 React 最初的源碼

我們已經(jīng) build 除了帶有 sourcemap 的 react 和 react-dom 包,那把這倆包復(fù)制到測(cè)試項(xiàng)目的 node_modules 下,就可以直接調(diào)試最初的源碼了么?

還是不行。

為什么呢?

看下面這張圖:

圖片

我們改造了 build 流程,對(duì) react 源碼進(jìn)行了 build,產(chǎn)生了帶有 sourcemap 的 react、react-dom 包,這些包最終導(dǎo)出的是 react-xx.development.js。

之后在項(xiàng)目里引入,經(jīng)過(guò) webpack 打包,產(chǎn)生了 bundle.js 和 sourcemap。

之后調(diào)試工具運(yùn)行代碼的時(shí)候,會(huì)解析 sourcemap,完成從 bundle.js 到 react-xxx.development.js 的映射:

圖片

但是并不會(huì)再次做 react-xx.development.js 到 react 最初源碼的映射呀。

也就是調(diào)試工具只會(huì)解析一次 sourcemap。

那怎么辦呢?

不打包 react 和 react-dom 這倆包不就行了。不經(jīng)過(guò) webpack 打包,那就沒(méi)有 webpack 產(chǎn)生的 sourcemap,不就一次就映射到 React 最初的源碼了么。

那怎么不打包這倆模塊呢?

webpack 支持 externals 來(lái)配置一些模塊使用全局變量而不進(jìn)行打包,這樣我們就可以單獨(dú)加載 react、react-dom,然后把他們導(dǎo)出的全局變量配置到 externals 就行了。

要改動(dòng) webpack 配置的話,在 create-react-app 下要執(zhí)行 npm run eject。

然后項(xiàng)目下會(huì)多出 config 目錄和 public 目錄,這倆分別放著 webpack 配置和一些公共文件。

修改 webpack 配置,在 externals 下添加 react 和 react-dom 包對(duì)應(yīng)的全局變量:

圖片

然后把 react.development.js 和 react-dom.development.js  放到 public 下,并在 index.html 里面加載這倆文件:

圖片

這樣再重新 debug,你就會(huì)發(fā)現(xiàn) sourcemap 映射到 React 最初的源碼了:

圖片

不再是 react-dom.development.js 下的代碼,而是具體 react-xxx 包下的。

這就達(dá)到了最開始的目的,能直接調(diào)試 React 最初的源碼!

圖片

還記得我們這樣做的意義么?

能調(diào)試最初的源碼才能知道哪段邏輯是在哪個(gè)包里的,不然要自己去搜索。

這樣已經(jīng)能夠達(dá)到我們的目的了,但是要想點(diǎn)擊調(diào)用棧直接定位到 git clone 下來(lái)的 react 項(xiàng)目的文件,還需要再做一步。

關(guān)聯(lián) react 源碼項(xiàng)目

看我最初演示的效果,點(diǎn)擊調(diào)用棧是能直接定位到 react 源碼項(xiàng)目的文件的:

圖片

這是怎么做到的呢?

其實(shí)只要 sourcemap 生效,并且 map 到的文件是在當(dāng)前 workspace 下,VSCode 就會(huì)打開對(duì)應(yīng)的文件。

現(xiàn)在 sourcemap 已經(jīng)生效了,只不過(guò) react 項(xiàng)目沒(méi)有在 workspace 下。所以,如果想直接定位 react 源碼項(xiàng)目的話,可以這樣做:

圖片

創(chuàng)建一個(gè)新的目錄,把 react 源碼項(xiàng)目和測(cè)試的項(xiàng)目放到一個(gè) workspace 下,這樣再調(diào)試的時(shí)候,map 到的文件就能在 workspace 找到了,也就會(huì)打開相應(yīng)的文件。

只不過(guò)現(xiàn)在 sourcemap 下都是這樣的相對(duì)路徑,會(huì)導(dǎo)致映射到的文件路徑不對(duì):

圖片

所以再去修改下 react build 流程,在 ./script/rollup/build.js 下,添加一個(gè) sourcemap 的路徑映射,把 ../../../packages 映射到 react 項(xiàng)目的絕對(duì)路徑/pcakges :

這時(shí)候再重新 build,生成的 sourcemap 就是絕對(duì)路徑了:

圖片

把新生成的 sourcemap 復(fù)制過(guò)去,覆蓋一下。

在新的 workspace 里 debug,你就會(huì)發(fā)現(xiàn),路徑映射對(duì)了:

圖片

點(diǎn)擊調(diào)用棧能直接打開 react 源碼項(xiàng)目的對(duì)應(yīng)文件了!

圖片

至此,我們就能優(yōu)雅的調(diào)試 React 最初的源碼了。

總結(jié)

用了 react 比較長(zhǎng)時(shí)間后,自然會(huì)想調(diào)試下源碼來(lái)深入下,但是常規(guī)的調(diào)試方式只能調(diào)試 react-dom.development.js,雖然能理清邏輯,但是對(duì)應(yīng)不到源碼里的哪些包哪些文件,總感覺和最初的源碼還有一段距離。

這個(gè)問(wèn)題是有解決方案的,就是會(huì)有點(diǎn)復(fù)雜:

首先要把 react 源碼項(xiàng)目下載下來(lái),修改 build 流程來(lái)生成帶有 sourcemap 的 react 和 react-dom 包,并且修改 sourcemap 映射的路徑為絕對(duì)路徑。

然后把 react 和 react-dom 配置到 webpack 的 externals 里,不進(jìn)行打包,而是單獨(dú)在 index.html 里引入。

因?yàn)?sourcemap 只會(huì)映射一次,而 webpack 已經(jīng)生成了一次 sourcmap,只有跳過(guò)這倆模塊的打包才能讓 react 和 react-dom 的 sourcemap 生效。

之后用 VSCode Debugger 來(lái)調(diào)試 React 項(xiàng)目,就能映射到最初的 React 源碼了。

如果想點(diǎn)擊調(diào)用棧直接打開對(duì)應(yīng) React 源碼項(xiàng)目的文件,那就新建一個(gè) workspace,把測(cè)試項(xiàng)目和 React 源碼項(xiàng)目包含就行了。因?yàn)?VSCode 如果在 workspace 下找到了 source map 到的文件,就會(huì)直接打開對(duì)應(yīng)的文件。

東東:最終的調(diào)試效果是很完美,但這個(gè)流程有點(diǎn)復(fù)雜

我:確實(shí),想實(shí)現(xiàn)能調(diào)試最初的源碼,并且還能直接打開對(duì)應(yīng)的 react 源碼項(xiàng)目的文件,還是比較麻煩的,但好在只需要配置一次,以后就能一直用了,而且類似的源碼調(diào)試方式也可以應(yīng)用到其他源碼的調(diào)試。

毫不夸張地說(shuō),這應(yīng)該是全網(wǎng)最優(yōu)雅的 React 源碼調(diào)試方式了。

責(zé)任編輯:武曉燕 來(lái)源: 神光的編程秘籍
相關(guān)推薦

2021-09-26 09:40:25

React代碼前端

2023-06-16 09:08:39

ReactContextRFC

2022-10-21 13:52:56

JS 報(bào)錯(cuò)調(diào)試本地源碼

2022-05-13 08:48:50

React組件TypeScrip

2023-12-21 10:26:30

??Prettier

2017-03-20 16:30:15

Android退出應(yīng)用優(yōu)雅方式

2021-01-19 11:56:19

Python開發(fā)語(yǔ)言

2020-03-25 17:55:30

SpringBoot攔截器Java

2013-05-28 10:52:07

Android開發(fā)移動(dòng)開發(fā)移動(dòng)應(yīng)用

2021-12-07 08:16:34

React 前端 組件

2021-12-13 14:37:37

React組件前端

2021-03-18 08:00:55

組件Hooks React

2022-06-13 09:00:33

React 項(xiàng)目前端

2022-03-04 20:28:02

VueReact網(wǎng)頁(yè)

2025-03-05 00:49:00

Win32源碼malloc

2021-10-11 09:41:20

React位運(yùn)算技巧前端

2024-12-05 09:45:25

Reactdiff 算法前端開發(fā)

2021-12-27 09:50:03

JavaScript開發(fā)數(shù)據(jù)分組

2011-09-13 17:44:00

Eclipse And

2022-12-30 11:05:40

Rust代碼
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

九九久久精品一区| 欧美老年两性高潮| 久久精品国产第一区二区三区最新章节| 日本少妇激情舌吻| 在线亚洲a色| 欧美精品色综合| www.国产在线播放| 成人影院免费观看| 国产一区欧美一区| 91国产美女视频| 美国黑人一级大黄| 蜜桃在线一区| 色视频一区二区| 18视频在线观看娇喘| 天天色棕合合合合合合合| 天堂av在线一区| 欧美成人在线影院| 黄色aaa视频| 日韩免费精品| 精品1区2区3区| 久久亚洲中文字幕无码| 男人的天堂在线视频免费观看 | 日本中文字幕在线免费观看| 不卡中文字幕| 亚洲成色777777在线观看影院| 男人透女人免费视频| 蜜乳av一区| 中文字幕中文在线不卡住| 精品一区二区国产| 亚洲精品无amm毛片| 紧缚奴在线一区二区三区| 日本高清不卡的在线| 国产在线综合网| 亚洲欧洲日韩| xvideos成人免费中文版| 久久久久国产精品无码免费看| 亚洲天天综合网| 神马午夜电影一区二区三区在线观看 | 日韩欧美亚洲国产另类| 九九视频精品在线观看| 手机在线观看av网站| 伊人色综合久久天天| 亚洲精品中文字幕乱码三区不卡| 天堂网www中文在线| 国产成人精品网址| 91久久中文字幕| 精人妻无码一区二区三区| 日韩五码在线| 欧美丰满少妇xxxxx| 成人在线观看高清| 欧美独立站高清久久| 中文国产成人精品久久一| 中文字幕一二三四区| 日本成人7777| 日韩精品视频在线观看免费| 男人的天堂免费| 欧美一区一区| 欧美一区二区美女| 久久精品久久99| 日本精品视频| 精品欧美乱码久久久久久1区2区| 亚洲欧美日韩中文字幕在线观看| 爱情电影网av一区二区| 91精品国产乱| 91福利视频免费观看| 欧美高清一级片| 日韩精品在线看片z| 911亚洲精选| 乱中年女人伦av一区二区| 精品嫩草影院久久| 999精品免费视频| 青青一区二区| 亚洲石原莉奈一区二区在线观看| 舐め犯し波多野结衣在线观看| 九九在线精品| www.国产一区| 麻豆91精品91久久久| 1024日韩| 国产97在线亚洲| 中文字幕欧美人妻精品一区蜜臀| 黄色精品一二区| 97netav| 色鬼7777久久| 国产精品久久久久精k8| 天天综合五月天| 91色在线看| 欧美在线免费视屏| 黄色片子免费看| 日韩有码中文字幕在线| 国产亚洲精品久久久久久777| 人成免费在线视频| 黑人一区二区三区四区五区| 日韩av电影手机在线观看| 一卡二卡在线视频| 成人av在线资源| 日韩三级电影| 免费污视频在线观看| 欧美日韩国产在线看| 日本黄大片一区二区三区| 成人动态视频| 中国china体内裑精亚洲片| 国产极品美女高潮无套嗷嗷叫酒店| 亚洲欧美久久| 97久草视频| 加勒比一区二区三区在线| 亚洲精品第1页| 日韩有码免费视频| 色悠久久久久综合先锋影音下载| 欧美精品一二| 制服丝袜在线91| 插我舔内射18免费视频| 日韩精品久久| 91精品国产91久久久| 中文字幕在线视频第一页| gogo大胆日本视频一区| 国产精品av免费| 日韩av首页| 亚洲精品黄网在线观看| 全网免费在线播放视频入口| 日韩影院精彩在线| 精品麻豆av| 午夜成年人在线免费视频| 欧美自拍丝袜亚洲| 99久久人妻精品免费二区| 欧美91视频| 91精品国产自产在线观看永久| 免费人成在线观看网站| 亚洲第一久久影院| 麻豆精品国产传媒| 亚洲综合激情在线| 国产精品永久在线| 久久精品蜜桃| 欧美午夜精品久久久久久浪潮 | 久久久精品免费看| 国产精品性做久久久久久| 亚洲成人午夜在线| 韩国成人动漫| 亚洲免费一在线| 日本三级小视频| av电影天堂一区二区在线观看| 中文字幕在线中文| 91麻豆精品| 波霸ol色综合久久| 国产精品自偷自拍| 亚洲少妇最新在线视频| 91日韩精品视频| 91日韩视频| 成人乱色短篇合集| yellow91字幕网在线| 91精品久久久久久久91蜜桃| 午夜成人亚洲理伦片在线观看| 免费看日韩精品| 伊人久久大香线蕉午夜av| 国产精品久久久久77777丨| 国产亚洲精品综合一区91| 日韩熟女一区二区| 国产女人18水真多18精品一级做| 无码人妻丰满熟妇区毛片18| 精品三级av| 国产91|九色| 黄色av网站在线看| 欧美午夜一区二区三区 | 亚洲一二三区不卡| 国产精品久久久免费观看| 久久久久国产精品午夜一区| 青青草原成人| 精品女同一区二区三区在线观看| 久久久精品免费视频| 精品人妻无码一区二区色欲产成人| 一区二区三区日韩欧美| 国产精品日日摸夜夜爽| 国产精品美女| 亚洲人一区二区| 我要色综合中文字幕| 97国产精品视频人人做人人爱| 深夜福利免费在线观看| 欧美性一级生活| 久久久久久视频| www.日韩精品| 男女污污的视频| 中文在线播放一区二区| 国产在线视频欧美一区二区三区| 欧美成人a交片免费看| 中文字幕精品在线视频| www.久久久久久久久久| 欧美性极品xxxx做受| 亚洲一区二区自偷自拍| 国产精品99久久久久久似苏梦涵| 秋霞无码一区二区| 欧美中文一区二区| 国产精品美女久久久久av福利| 日韩毛片免费观看| 久久大大胆人体| 日本不卡视频一区二区| 欧美女孩性生活视频| 日韩特黄一级片| 亚洲欧洲www| 99re久久精品国产| 久久av资源网| 久久无码高潮喷水| 欧美黄色一区| 性欧美精品一区二区三区在线播放 | 国产大片免费看| 久久免费美女视频| 少妇熟女视频一区二区三区| 日本成人在线一区| 久久国产精品网| 999精品在线| 人禽交欧美网站免费| 狠狠色噜噜狠狠色综合久| 多野结衣av一区| zzjj国产精品一区二区| 欧美精品久久久久久久久久丰满| 欧美一区午夜精品| 波多野结衣av无码| 午夜天堂影视香蕉久久| 久久久久亚洲av片无码| 国产亚洲精品7777| 丰满少妇一区二区三区| 国产91在线看| 午夜免费视频网站| 久久国产乱子精品免费女| 日本在线观看a| 伊人影院久久| 精品一区二区三区无码视频| 国产高清一区二区| 亚洲欧洲一区二区福利| 国产传媒欧美日韩成人精品大片| 国产日韩三区| 777久久精品| 91久久大香伊蕉在人线| 欧美激情不卡| 国产有码一区二区| 欧洲成人一区| 国产精品丝袜久久久久久高清 | 欧美日韩一区自拍| 中文精品一区二区三区| 日韩免费av| 翔田千里亚洲一二三区| 欧美亚洲国产精品久久| 日韩精品伦理第一区| 欧美精品尤物在线观看| 欧美日韩一区在线播放| 综合国产视频| 欧美日韩精品不卡| 欧美在线色图| 在线观看精品视频| 午夜激情一区| 成人免费视频91| 国产一区导航| 麻豆av免费在线| 日本特黄久久久高潮 | 丰满亚洲少妇av| 涩视频在线观看| 成人黄色777网| 国产白嫩美女无套久久| 久久久久久夜精品精品免费| 在线免费观看麻豆| 亚洲国产高清在线| 神马久久精品综合| 亚洲亚洲精品在线观看| 国产香蕉视频在线| 欧美性猛交xxxxxx富婆| 91久久国语露脸精品国产高跟| 欧美一区二区视频免费观看| 午夜精品久久久久久久99老熟妇| 亚洲精品国产综合区久久久久久久| 你懂的在线看| 色婷婷综合久久久久| 成人免费高清| 国内精品美女av在线播放| 吉吉日韩欧美| 成人久久一区二区| 男人的天堂久久| 亚洲国产一区二区三区在线播 | 国产露脸国语对白在线| 精品国精品自拍自在线| 色网站在线免费观看| 日韩在线观看免费网站 | 色哟哟网站在线观看| 99精品欧美一区二区三区综合在线| 国产小视频自拍| 亚洲欧美日韩国产成人精品影院 | 国产精品va在线观看视色| 久久久久久久97| 日韩色淫视频| 国产经品一区二区| 成人无号精品一区二区三区| 国产91porn| 日日摸夜夜添夜夜添国产精品| 日韩av一卡二卡三卡| 成人蜜臀av电影| 久久久精品成人| 亚洲国产精品天堂| 91超薄丝袜肉丝一区二区| 亚洲第一页自拍| 最新国产在线观看| 97在线视频免费观看| 欧美一级在线| 麻豆91av| 欧美日韩国产免费观看| 999精品视频在线| 成人丝袜18视频在线观看| 成人一级片免费看| 精品成人av一区| 亚洲爱爱综合网| 综合av色偷偷网| 伊人网在线播放| 国产激情一区二区三区在线观看| 91视频精品| 91n.com在线观看| 99久久国产免费看| 国产小视频在线看| 5858s免费视频成人| 国产精品麻豆一区二区三区| 性欧美办公室18xxxxhd| 精品入口麻豆88视频| 性欧美videosex高清少妇| 免费在线亚洲欧美| 久久久高清视频| 亚洲精品乱码久久久久久黑人| 中文字幕乱码视频| 一本一本久久a久久精品综合小说| 77thz桃花论族在线观看| 91视频九色网站| 91久久夜色精品国产按摩| 九九热在线免费| 久久久国际精品| 日韩av在线天堂| 精品久久久久香蕉网| 性欧美video高清bbw| 91久久国产精品91久久性色| 成人三级视频| 另类小说第一页| 国产精品每日更新在线播放网址| 中文字幕精品视频在线观看| 亚洲电影成人av99爱色| 精品精品导航| 国产精品久久国产精品| 午夜精品久久| 激情综合激情五月| 一区二区三区中文字幕| 午夜精品久久久久久久99热黄桃| 欧美成年人在线观看| 精品国产麻豆| 99久久免费观看| 成人av免费在线播放| 天天操天天爽天天干| 日韩精品一二三四区| 久久sese| 日韩福利影院| 久久精品国产99国产| 国产尤物在线播放| 日韩一区二区三区精品视频| fc2ppv国产精品久久| 国产精品久久久久av福利动漫| 在线成人欧美| 久久国产精品影院| 欧美在线一二三四区| 成视频免费观看在线看| 国产成人精品免费视频大全最热| 樱桃成人精品视频在线播放| 黑丝av在线播放| 欧美视频一二三区| 成人免费看片| 精品综合久久| 免费高清在线一区| 麻豆国产尤物av尤物在线观看| 亚洲精品二三区| 电影亚洲精品噜噜在线观看 | 日韩亚洲精品在线| 六月婷婷七月丁香| 911精品产国品一二三产区| 色呦呦久久久| 欧美凹凸一区二区三区视频 | 国产精品嫩草av| 欧美视频自拍偷拍| 成人性生交大片免费看网站| 久久国产一区| 精品一区二区三区免费毛片爱| 久久人人爽人人爽人人| 亚洲免费中文字幕| 欧美专区一区| 三级4级全黄60分钟| 日韩美女啊v在线免费观看| 亚州精品国产精品乱码不99按摩| 国产精品亚洲аv天堂网| 亚洲激情专区| 国产午夜精品久久久久久久久| 欧美大肚乱孕交hd孕妇| 国产v综合v| 国产乱人伦精品一区二区三区| 久久久99精品久久| av资源免费看| 国产精品xxxxx| 亚洲三级电影在线观看| 日日操免费视频| 亚洲日本欧美日韩高观看| 日本99精品| 亚洲视频一二三四|