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

從 Next.js 看企業(yè)級(jí)框架的 SSR 支持

開發(fā) 架構(gòu)
面向生產(chǎn)使用的 React 框架(廢話)。提供了好些開箱即用的特性,支持靜態(tài)渲染/服務(wù)端渲染混用、支持 TypeScript、支持打包優(yōu)化、支持按路由預(yù)加載等等。

[[355666]]

本文轉(zhuǎn)載自微信公眾號(hào)「前端向后」,作者黯羽輕揚(yáng)  。轉(zhuǎn)載本文請聯(lián)系前端向后公眾號(hào)。 

 一.Next.js 簡介

The React Framework for Production

面向生產(chǎn)使用的 React 框架(廢話)。提供了好些開箱即用的特性,支持靜態(tài)渲染/服務(wù)端渲染混用、支持 TypeScript、支持打包優(yōu)化、支持按路由預(yù)加載等等:

Next.js gives you the best developer experience with all the features you need for production: hybrid static & server rendering, TypeScript support, smart bundling, route pre-fetching, and more. No config needed.

其中,完善的靜態(tài)渲染/服務(wù)端渲染支持讓 Next.js 在 React 生態(tài)中獨(dú)樹一幟

二.核心特性

如果說 Next.js 只做了一件事,那就是預(yù)渲染(Pre-rendering):

By default, Next.js pre-renders every page. This means that Next.js generates HTML for each page in advance, instead of having it all done by client-side JavaScript.

具體的,預(yù)渲染分為兩種方式:

  • SSG(Static Site Generation):也叫 Static Generation,在編譯時(shí)生成靜態(tài) HTML
  • SSR(Server-Side Rendering):也叫 Server Rendering,用戶請求到來時(shí)動(dòng)態(tài)生成 HTML

與 SSR 相比,Next.js 更推崇的是 SSG,因?yàn)槠湫阅軆?yōu)勢更大(靜態(tài)內(nèi)容可托管至 CDN,性能提升立竿見影)。因此建議優(yōu)先考慮 SSG,只在 SSG 無法滿足的情況下(比如一些無法在編譯時(shí)靜態(tài)生成的個(gè)性化內(nèi)容)才考慮 SSR、CSR

P.S.CSR、SSR 等更多渲染模式,見前端渲染模式的探索

圍繞核心的預(yù)渲染功能,延伸出了一系列相關(guān)支持,如:

  • 路由(文件規(guī)范、API):多頁面的基礎(chǔ)
  • 頁面級(jí)預(yù)渲染、代碼拆分:順理成章
  • 增量靜態(tài)生成:針對(duì)大量頁面的編譯時(shí)預(yù)渲染(即靜態(tài)生成)策略
  • 按路由預(yù)加載:錦上添花
  • 國際化(結(jié)合路由):錦上添花
  • 集成 Serverless 函數(shù):錦上添花
  • 自動(dòng) polyfill、自定義head標(biāo)簽:友情贈(zèng)送

此外,還提供了一些通用場景支持:

  • 開箱即用(0 配置)
  • TypeScript
  • CSS module、Sass
  • Fast Refresh(可靠的 Hot Reload 支持)
  • 用戶真實(shí)數(shù)據(jù)收集分析(頁面加載性能、體驗(yàn)評(píng)分等)
  • 帶默認(rèn)優(yōu)化的Image組件

三.路由支持

Next.js 提供了兩種路由支持,靜態(tài)路由與動(dòng)態(tài)路由

靜態(tài)路由

靜態(tài)路由通過文件規(guī)范來約定,pages目錄下的js文件都認(rèn)為是路由(每個(gè)靜態(tài)路由對(duì)應(yīng)一個(gè)頁面文件),例如:

  1. pages/index.js → / 
  2. pages/blog/index.js → /blog 
  3. pages/blog/first-post.js → /blog/first-post 
  4. pages/dashboard/settings/username.js → /dashboard/settings/username 

動(dòng)態(tài)路由

類似的,動(dòng)態(tài)路由也要在pages目錄下創(chuàng)建文件,只是文件名有些不同尋常:

  1. pages/blog/[slug].js → /blog/:slug (/blog/hello-world) 
  2. pages/[username]/settings.js → /:username/settings (/foo/settings) 
  3. pages/post/[...all].js → /post/* (/post/2020/id/title) 

路徑中變化的參數(shù)通過getStaticPaths來填充:

  1. // pages/posts/[id].js 
  2. export async function getStaticPaths() { 
  3.   return { 
  4.     // 必須叫paths,值必須是數(shù)組 
  5.     paths: [{ 
  6.       // 每一項(xiàng)必須是這個(gè)形式 
  7.       params: { 
  8.         // 必須含有id 
  9.         id: 'ssg-SSR' 
  10.       } 
  11.     },{ 
  12.       params: { 
  13.         id: 'pre-rendering' 
  14.       } 
  15.     }], 
  16.     fallback: false 
  17.   } 

進(jìn)一步傳遞給getStaticProps按參數(shù)獲取數(shù)據(jù),并渲染頁面:

  1.  props: { 
  2.       postData 
  3.     } 
  4.   } 
  5.  
  6. // 渲染頁面 
  7. export default function Post({ postData }) { 
  8.   return ( 
  9.     <Layout> 
  10.       <Head> 
  11.         <title>{postData.title}</title> 
  12.       </Head> 
  13.       <article> 
  14.         <h1 className={utilStyles.headingXl}>{postData.title}</h1> 
  15.         <div className={utilStyles.lightText}> 
  16.           <Date dateString={postData.date} /> 
  17.         </div> 
  18.         <div dangerouslySetInnerHTML={{ __html: postData.contentHtml }} /> 
  19.       </article> 
  20.     </Layout> 
  21.   ) 

可以理解為先創(chuàng)建一個(gè)工廠 page(例如pages/[路由參數(shù)1]/[路由參數(shù)2].js),接著getStaticPaths填充路由參數(shù),getStaticProps({ params })根據(jù)參數(shù)請求不同數(shù)據(jù),最后數(shù)據(jù)進(jìn)入頁面組件開始預(yù)渲染:

四.SSG 支持

最簡單,同時(shí)性能也最優(yōu)的預(yù)渲染方式就是靜態(tài)生成(SSG),把組件渲染工作完全前移到編譯時(shí):

  1. (編譯時(shí))獲取數(shù)據(jù)
  2. (編譯時(shí))渲染組件,生成 HTML

將生成的 HTML 靜態(tài)資源托管到 Web 服務(wù)器或 CDN 即可,兼具 React 工程優(yōu)勢與 Web 極致性能

那么首先要解決如何獲取數(shù)據(jù)的問題,Next.js 的做法是將頁面依賴的數(shù)據(jù)集中管理起來:

  1. // pages/index.js 
  2. export default function Home(props) { ... } 
  3.  
  4. // 獲取靜態(tài)數(shù)據(jù) 
  5. export async function getStaticProps() { 
  6.   // Get external data from the file system, API, DB, etc. 
  7.   const data = ... 
  8.  
  9.   // The value of the `props` key will be 
  10.   //  passed to the `Home` component 
  11.   return { 
  12.     props: ... 
  13.   } 

其中,getStaticProps只在服務(wù)端執(zhí)行(根本不會(huì)進(jìn)入客戶端 bundle),返回的靜態(tài)數(shù)據(jù)會(huì)傳遞給頁面組件(上例中的Home)。也就是說,要求通過getStaticProps提前備好頁面所依賴的全部數(shù)據(jù),數(shù)據(jù) ready 之后組件才開始渲染,并生成 HTML

P.S.注意,只有頁面能通過getStaticProps聲明其數(shù)據(jù)依賴,普通組件不允許,所以要求將整頁依賴的所有數(shù)據(jù)都組織到一處

至于渲染生成 HTML 的部分,借助React 提供的 SSR API即可完成

至此,只要是依賴數(shù)據(jù)有辦法提前獲取到的頁面,理論上都可以編譯生成靜態(tài) HTML,但 2 個(gè)問題也隨之而來:

  • 數(shù)據(jù)可能會(huì)發(fā)生變化,已經(jīng)生成的靜態(tài)頁面需要更新
  • 數(shù)據(jù)量可能會(huì)多到“永遠(yuǎn)”編譯不完

以電商頁面為例,要把海量商品數(shù)據(jù)全都編譯成靜態(tài)頁面,幾乎是不可能的(或許要編譯一個(gè)世紀(jì)那么長),即便都生成了,商品信息也會(huì)時(shí)不時(shí)地更新,靜態(tài)頁面需要重新生成:

If your app has a very large number of static pages that depend on data (think: a very large e-commerce site). You want to pre-render all product pages, but then your builds would take forever.

因此,增量靜態(tài)再生成(Incremental Static Regeneration)應(yīng)運(yùn)而生

ISR 支持

對(duì)于編譯時(shí)無法窮舉的海量頁面以及需要更新的場景,Next.js 允許運(yùn)行時(shí)再生成(相當(dāng)于運(yùn)行時(shí)靜態(tài)化):

Incremental Static Regeneration allows you to update existing pages by re-rendering them in the background as traffic comes in.

例如:

  1. export async function getStaticProps() { 
  2.   const res = await fetch('https://.../posts'
  3.   const posts = await res.json() 
  4.  
  5.   return { 
  6.     props: { 
  7.       posts, 
  8.     }, 
  9.     // 設(shè)置有效期,開啟ISR 
  10.     revalidate: 1, // In seconds 
  11.   } 

revalidate: 1表示運(yùn)行時(shí)(用戶請求打過來時(shí))嘗試重新生成靜態(tài) HTML,1秒最多重新生成一次

運(yùn)行時(shí)靜態(tài)生成需要一些時(shí)間(用戶請求等著要 HTML),在此過程中有 3 種選擇:

  • fallback: false:不降級(jí),命中尚未生成靜態(tài)頁面的路由直接 404
  • fallback: true:降級(jí),命中尚未生成靜態(tài)頁面的路由先返回降級(jí)頁面(此時(shí)props為空,一般顯示個(gè) loading),靜態(tài)生成 HTML 的同時(shí)會(huì)生成一份 JSON 供降級(jí)頁面 CSR 使用,完成之后瀏覽器拿到數(shù)據(jù)(在客戶端填上props),渲染出完整頁面
  • fallback: 'blocking':不降級(jí),并且要求用戶請求一直等到新頁面靜態(tài)生成結(jié)束(實(shí)際上就是 SSR,渲染過程是阻塞的,只是完成之后會(huì)保留結(jié)果 HTML)

即結(jié)合路由(getStaticPaths)對(duì)尚未生成的頁面進(jìn)行降級(jí),例如:

  1. // pages/index.js 
  2. import { useRouter } from 'next/router' 
  3.  
  4. function Post({ post }) { 
  5.   const router = useRouter() 
  6.  
  7.   // 渲染降級(jí)頁面 
  8.   if (router.isFallback) { 
  9.     return <div>Loading...</div> 
  10.   } 
  11.  
  12.   // Render post... 
  13.  
  14. export async function getStaticPaths() { 
  15.   return { 
  16.     paths: [{ params: { id: '1' } }, { params: { id: '2' } }], 
  17.     // (頁面級(jí))降級(jí)策略,true表示遇到尚未生成的先給個(gè)降級(jí)頁,生成完畢后客戶端自動(dòng)更新過來 
  18.     fallback: true
  19.   } 

P.S.具體見Incremental Static Regeneration、以及The fallback key

然而,并非所有場景都能愉快地在編譯時(shí)靜態(tài)生成。典型的,如果組件依賴的數(shù)據(jù)是動(dòng)態(tài)的,顯然無法在編譯時(shí)預(yù)先取得數(shù)據(jù),靜態(tài)生成就無從談起了

五.SSR 支持

對(duì)于編譯時(shí)無法生成靜態(tài)頁面的場景,就不得不考慮 SSR 了:

區(qū)別于 SSG getStaticProps,Next.js 提供了 SSR 專用的getServerSideProps(context):

  1. // pages/index.js 
  2. export async function getServerSideProps(context) { 
  3.   const res = await fetch(`https://...`) 
  4.   const data = await res.json() 
  5.  
  6.   if (!data) { 
  7.     return { 
  8.       notFound: true
  9.     } 
  10.   } 
  11.  
  12.   return { 
  13.     props: {}, // will be passed to the page component as props 
  14.   } 

同樣用來獲取數(shù)據(jù),與getStaticProps最大的區(qū)別在于每個(gè)請求過來時(shí)都執(zhí)行,所以能夠拿到請求上下文參數(shù)(context)

六.總結(jié)

圍繞預(yù)渲染如何獲取數(shù)據(jù)的問題,Next.js 探索出了別致的路由支持和精巧的 SSG、SSR 支持。不僅如此,Next.js 還提供了魚和熊掌可以兼得的混用支持,不同渲染模式結(jié)合起來到底有多厲害,且看下篇分解

參考資料

  • Pages
  • Data Fetching
  • Create a Next.js App:教程有點(diǎn)意思
  • vercel/next-learn-starter:示例 Demo

原文鏈接:https://mp.weixin.qq.com/s/bS9GHni4ecnz9UFi9RD24Q

 

責(zé)任編輯:武曉燕 來源: 前端向后
相關(guān)推薦

2021-12-27 08:31:42

Next.js SSRSSG

2025-03-31 00:00:02

Next.jsReact漏洞

2024-03-04 07:33:39

RemixReact框架

2023-01-03 08:00:00

2025-07-24 08:32:39

2025-11-04 09:45:40

2009-10-20 09:25:17

Java EE 6最終

2024-12-13 08:37:32

2025-02-03 00:00:35

2024-01-25 09:04:25

2009-03-02 09:22:39

OSGiJ2EEEclipse

2025-09-08 06:30:00

Fresh框架開發(fā)

2024-05-09 09:01:03

2024-11-25 07:39:48

2024-09-20 15:37:02

2025-01-17 09:29:42

2024-04-28 10:56:34

Next.jsWeb應(yīng)用搜索引擎優(yōu)化

2024-09-04 10:27:53

2023-11-02 08:01:06

Next.jsReactWeb

2012-09-17 09:50:24

桌面虛擬化
點(diǎn)贊
收藏

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

在线免费观看黄| 中文字幕码精品视频网站| 成人看片黄a免费看视频| 性欧美大战久久久久久久久| 久久综合伊人77777麻豆| 欧美激情一区二区三区免费观看 | 欧美日韩国产精品成人| 在线观看成人一级片| 狠狠综合久久av一区二区| 免费在线播放第一区高清av| 少妇高潮 亚洲精品| 91亚洲一线产区二线产区| 范冰冰一级做a爰片久久毛片| 欧美激情中文字幕| 国产精品久久久久久久免费大片| 久久久蜜桃一区二区| 在线中文一区| 亚洲色图狂野欧美| 麻豆av免费看| 欧美成a人片免费观看久久五月天| 亚洲一区二三区| 亚洲视频在线观看日本a| 国产综合在线播放| 精品一区二区免费看| 97香蕉超级碰碰久久免费软件| 日本黄色激情视频| 欧美18免费视频| 91麻豆精品国产91久久久更新时间| 久久久亚洲精品无码| 50度灰在线| 国产精品第13页| 久久亚洲精品欧美| 囯产精品久久久久久| 精品在线观看免费| 国产精品老女人视频| av大片免费观看| 欧美日韩亚洲一区三区| 久久精品中文字幕电影| 一级片久久久久| 亚州精品视频| 亚洲护士老师的毛茸茸最新章节| 欧美69精品久久久久久不卡| 国产精品亚洲成在人线| 欧美午夜影院在线视频| 免费观看亚洲视频| 粗大黑人巨茎大战欧美成人| 中文一区二区在线观看| 日韩av一区二区三区美女毛片| 天天综合在线视频| eeuss国产一区二区三区| 成人免费视频观看视频| 亚洲第九十九页| 成人免费福利片| 翡翠波斯猫1977年美国| 丰满熟妇乱又伦| 丰满岳乱妇一区二区三区| 91情侣在线视频| 精品人妻aV中文字幕乱码色欲| 精品一区二区三区久久| 亚洲精品免费网站| av免费在线观看不卡| 国产在线视视频有精品| 亚洲最大福利视频网| 国产sm主人调教女m视频| 国产成人激情av| 国产精品v欧美精品∨日韩| 好男人在线视频www| 成人18精品视频| 久久99精品久久久久久秒播放器 | 操日韩av在线电影| 裸体武打性艳史| 亚洲性人人天天夜夜摸| 97在线视频免费看| 无码人妻丰满熟妇精品| 老司机精品视频一区二区三区| 成人性生交大片免费观看嘿嘿视频| 国产毛片毛片毛片毛片毛片| 国产成人av影院| 久久精品成人一区二区三区蜜臀| 日本一级在线观看| 国产清纯白嫩初高生在线观看91 | 在线成人av网站| 无码国产精品一区二区高潮| 欧美1区二区| 亚洲深夜福利在线| 欧美老熟妇一区二区三区| 国产精品二区影院| 国产a级全部精品| 国产乱码精品一区二三区蜜臂| 成人av在线资源| 日韩一区国产在线观看| 精品自拍一区| 狠狠色狠狠色综合日日小说 | 国产成人精品一区二区三区四区| 国产综合动作在线观看| 大地资源中文在线观看免费版| 亚洲视频综合在线| 亚洲自偷自拍熟女另类| 先锋影音网一区二区| 精品国产乱码久久久久久久久| 日本aaa视频| 亚洲欧美综合久久久| 91干在线观看| 国产精品爽爽久久| 久久久精品日韩欧美| 狠狠精品干练久久久无码中文字幕 | 国产成人精品福利| 尤物九九久久国产精品的分类| 深夜福利影院在线观看| 久久av一区二区三区| 91视频免费在线观看| 黄色片视频在线观看| 亚洲精品欧美激情| 亚洲天堂网一区| 麻豆精品少妇| 欧美第一淫aaasss性| 糖心vlog精品一区二区| 99精品视频一区二区| 91免费网站视频| 国产成人精选| 日韩精品亚洲元码| 国产真实乱人偷精品视频| 久久精品国产免费| 日本黑人久久| 日韩电影毛片| 精品国产百合女同互慰| 动漫性做爰视频| 麻豆精品视频在线观看免费| 蜜桃av噜噜一区二区三| 草美女在线观看| 日韩亚洲欧美高清| 国产日韩精品中文字无码| 国产一区二区精品| 国产日韩一区二区| 国产盗摄一区二区| 日韩视频在线你懂得| 亚洲少妇xxx| 日韩影院在线观看| 女同一区二区| 欧美极品免费| 亚洲欧美日韩另类| 一级做a爰片久久毛片| 99久久国产综合精品色伊| 菠萝蜜视频在线观看入口| 国产精品视频一区视频二区| 最近2019中文字幕一页二页| 男人天堂视频在线| 国产拍揄自揄精品视频麻豆| 黄色片视频在线免费观看| 神马日本精品| 欧洲亚洲免费视频| 黄色片在线免费观看| 欧美亚洲动漫制服丝袜| 国产精品久久久视频| 免费一级片91| 在线看无码的免费网站| 少妇精品视频在线观看| 日韩在线观看成人| 99久久精品国产成人一区二区| 日韩美女精品在线| 欧美熟妇另类久久久久久多毛| 亚洲最大黄网| 国产v亚洲v天堂无码| 国产不卡123| 亚洲免费视频网站| 瑟瑟视频在线免费观看| 国产精品国产三级国产a| 在线免费看污网站| 欧美日韩理论| 精品国产乱码久久久久软件 | 日韩在线资源| 91精品国产全国免费观看| 青青青在线免费观看| 不卡一区中文字幕| 成人久久久久久久久| 波多野结衣一区| 91久久久久久国产精品| jizz一区二区三区| 亚洲欧美日韩精品久久奇米色影视| 最近中文字幕免费在线观看| 日韩一区在线播放| 超碰男人的天堂| 免费成人你懂的| 成人污网站在线观看| 日本欧美韩国国产| 国产精品入口免费视| 日本无删减在线| 国产婷婷97碰碰久久人人蜜臀 | 中文av在线全新| 在线视频日本亚洲性| 国产黄a三级三级看三级| 疯狂做受xxxx欧美肥白少妇| www成人啪啪18软件| 国产suv精品一区二区883| 欧美丰满熟妇bbbbbb百度| 天天做综合网| 久久大片网站| 成人亚洲精品| 日韩av大片免费看| 肉体视频在线| 中文字幕少妇一区二区三区| 内射后入在线观看一区| 欧美日韩mp4| wwwwww国产| 亚洲欧美日韩国产成人精品影院| 一二三不卡视频| 国产一区二区福利视频| 97xxxxx| 国产一区激情| 一区二区高清视频| 西野翔中文久久精品字幕| 亚洲精品欧美日韩专区| 欧美性理论片在线观看片免费| 欧美日韩国产成人在线| 毛片在线不卡| 亚洲片在线资源| 日本高清视频www| 91精品国产欧美一区二区18| 波多野结衣视频观看| 亚洲超碰精品一区二区| 永久看片925tv| 国产精品久久久久影院| 一区二区三区伦理片| 99视频精品免费视频| 手机在线播放av| 激情综合网av| 黄色手机在线视频| 久久精品卡一| 激情综合在线观看| 在线日韩视频| 人妻无码久久一区二区三区免费| 亚洲乱码免费伦视频| 亚洲成人第一| 日韩国产一区二区三区| 青青草成人激情在线| 日韩免费电影在线观看| 国产在线精品一区二区中文| 亚洲精品一区二区三区中文字幕| 91精品综合久久久久久五月天| 福利一区在线| 国产欧美精品va在线观看| 91欧美精品| 国产精品三级网站| 成人精品一区二区三区电影| 国产精品夫妻激情| 成人黄色免费网站| 国产精品日韩电影| 国产精品久久久久久吹潮| 国产精品视频久久| 欧美91在线|欧美| 国产日韩欧美日韩大片| 中文字幕综合| 不卡视频一区二区| 91成人午夜| 精品国产一区二区三区麻豆免费观看完整版 | 欧美亚洲一区二区三区| 国产xxxxx在线观看| 久久精品三级| 一区二区成人网| 久久精品国产精品亚洲精品| 激情五月婷婷基地| 国产剧情av麻豆香蕉精品| 久久久国产精品久久久| 成人亚洲精品久久久久软件| 一级欧美一级日韩片| 99久久免费视频.com| 人妻大战黑人白浆狂泄| 中文字幕av不卡| 看片网站在线观看| 亚洲福利一二三区| 日本免费在线观看视频| 欧美日免费三级在线| 国产又黄又猛又爽| 精品久久久久久亚洲综合网 | 僵尸世界大战2 在线播放| 久久福利精品| 91视频这里只有精品| 国产a视频精品免费观看| 国产精品无码电影| 欧美韩日一区二区三区四区| 午夜精品一区二区三区视频| 五月激情综合色| 中文字幕在线视频免费| 日韩视频一区在线观看| 日韩av成人| 久久精品国产久精国产思思| 美女扒开腿让男人桶爽久久软| 日本亚洲欧洲色| 国产精品va视频| 久久av免费观看| 久久精品亚洲人成影院| 日本中文字幕网址| 国内久久婷婷综合| 亚洲av综合一区二区| 亚洲色图清纯唯美| 九九精品免费视频| 日韩欧美一区在线| 国产小视频在线播放| 久久综合伊人77777尤物| 欧美1级2级| 国产精品99久久久久久久| 成人综合专区| 国产极品粉嫩福利姬萌白酱| 国产一区二区三区精品欧美日韩一区二区三区 | 在线视频中文亚洲| 白白色在线观看| 91精品久久久久久久久不口人| 欧美人体视频| 日本一道在线观看| 青椒成人免费视频| 国产熟女高潮一区二区三区| 亚洲欧洲国产专区| 亚洲影院在线播放| 精品久久久久久久人人人人传媒| yes4444视频在线观看| 97超级碰碰人国产在线观看| 9999在线精品视频| 亚洲精品在线免费| 久久久亚洲一区| 波多野结衣影院| 亚洲综合久久久| av av片在线看| 最新国产成人av网站网址麻豆| 一根才成人网| 久久国产精品久久精品国产| 欧美天天视频| 天天操夜夜操很很操| 国产精品私人自拍| 国产伦精品一区二区三区视频我| 亚洲国产天堂网精品网站| www国产在线观看| 国产有码一区二区| 日韩精品免费| 午夜免费高清视频| 国产亚洲1区2区3区| 日批视频免费在线观看| 日韩激情视频在线| 亚洲插插视频| 久久久久久久久久久久久久久久av| 亚洲激情二区| 日韩Av无码精品| 亚洲一区二区三区美女| 丰满人妻妇伦又伦精品国产| 欧美日韩第一视频| 亚洲码欧美码一区二区三区| 无码人妻精品一区二区蜜桃百度| 精品一区二区三区久久久| 国产麻豆视频在线观看| 538prom精品视频线放| 黄页视频在线播放| 亚洲va欧美va国产综合剧情| **女人18毛片一区二区| 一级黄色免费毛片| 一区二区在线看| 国模私拍视频在线| 欧美一性一乱一交一视频| 九九热爱视频精品视频| 欧美一级裸体视频| 国产精品色哟哟网站| 国产精品人人爽| 欧美丰满少妇xxxxx| 超碰精品在线| 久久久久久久久久久视频| 国产欧美日韩亚州综合| 伊人免费在线观看| 久久中文字幕视频| jizz18欧美18| 中文字幕乱码人妻综合二区三区| 久久精品日产第一区二区三区高清版 | 一本大道综合伊人精品热热| 九色在线免费| 成人午夜黄色影院| 极品少妇一区二区三区| 亚洲一级中文字幕| 91麻豆精品国产91久久久资源速度| 羞羞视频在线观看不卡| 美女一区视频| 国内精品国产成人| 亚洲国产综合久久| 亚洲天堂免费在线| 国产精品日本一区二区不卡视频| 国产精品国产亚洲精品看不卡| 久久久久久久久免费| 一级片免费观看视频| 久久久久久久999精品视频| 一区二区美女| 人妻体体内射精一区二区| 欧美日韩美女视频| 青青青青在线| 国内视频一区二区| 精品一区二区三区免费视频| 国产一级久久久| 亚洲一区二区福利| 亚洲精品aⅴ| 欧洲熟妇精品视频| 亚洲综合av网| 午夜在线小视频| 久久综合福利| 国产精品亚洲一区二区三区在线 | 噜噜噜在线观看免费视频日韩 |