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

Vue3又出新語法 到底何時(shí)才能折騰完?

開發(fā) 前端
大家應(yīng)該知道如果用 Vue3 的 Composition API 定義一個(gè)響應(yīng)式變量通常有兩種形式,一種是用ref,另一種是reactive。

前言

大家應(yīng)該知道如果用 Vue3 的 Composition API 定義一個(gè)響應(yīng)式變量通常有兩種形式,一種是用ref,另一種是reactive:

  1. <script setup> 
  2. import { ref, reactive } from 'vue' 
  3.  
  4. const isLoading = ref(true
  5.  
  6. const user = reactive({ 
  7.   name'令狐沖'
  8.   age: 22, 
  9.   gender: '男' 
  10. }) 
  11. </script> 

 

一般來說定義一個(gè)基本數(shù)據(jù)類型會(huì)用ref,而引用類型則會(huì)采用reactive,那么問題來了,ref雖然定義了一個(gè)基本數(shù)據(jù)類型,但實(shí)際上它卻是一個(gè)引用類型,取值和賦值時(shí)必須要帶上.value屬性:

  1. <script setup> 
  2. import { ref } from 'vue' 
  3.  
  4. const isLoading = ref(true
  5.  
  6. if (isLoading.value) { 
  7.   isLoading.value = false 
  8. </script> 

 

這就有點(diǎn)不太符合直覺了,很有可能一不小心就被寫成了這樣:

  1. <script setup> 
  2. import { ref } from 'vue' 
  3.  
  4. let isLoading = ref(true
  5.  
  6. if (isLoading) { 
  7.   isLoading = false 
  8. </script> 

 

這要是有TS和ESLint的加持還好,要是沒有的話可就不好找錯(cuò)誤了,也不會(huì)產(chǎn)生什么有用的報(bào)錯(cuò)信息,而且每次都要帶上這個(gè).value實(shí)在是不好看,而且寫起來也麻煩呀!

reactive的弊端是不能解構(gòu),解構(gòu)就會(huì)失去響應(yīng)性:

  1. <script setup> 
  2. import { reactive } from 'vue' 
  3.  
  4. const user = reactive({ 
  5.   name'令狐沖'
  6.   age: 22, 
  7.   gender: '男' 
  8. }) 
  9.  
  10. // 這種寫法通常達(dá)不到預(yù)期的效果 
  11. let { age } = user 
  12. age = 18 
  13. </script> 

 

可能有人會(huì)說,不是有toRefs嗎?用了toRefs,就又會(huì)回到那個(gè).value的問題上了:

  1. <script setup> 
  2. import { reactive, toRefs } from 'vue' 
  3.  
  4. const user = reactive({ 
  5.   name'令狐沖'
  6.   age: 22, 
  7.   gender: '男' 
  8. }) 
  9.  
  10. let { age } = toRefs(user
  11. age.value = 18 
  12. </script> 

 

其實(shí)我個(gè)人覺得還好啦,因?yàn)橐呀?jīng)寫習(xí)慣了,再加上一直用TS有提示和自動(dòng)補(bǔ)全,所以感覺沒什么問題。

但知乎上類似于《為什么 vue3 刪不掉 ref() 這樣冗余的函數(shù),但 svelte 可以?》這種問題深深的刺痛了大佬的內(nèi)心,大佬自己的強(qiáng)迫癥也犯了,畢竟他當(dāng)年創(chuàng)造Vue的最成功要素之一就是方便。而如今這種冗余的寫法卻與方便毫不搭邊兒,所以尤大無論如何也必須要解決這個(gè)問題,不能讓人背后嚼耳根子說Vue寫起來還沒Svelte方便是不是?于是乎大佬先后創(chuàng)建了三次不同的語法糖,它們分別是:

  • 《[譯]尤雨溪: Ref語法糖提案》
  • 《Vue第二波ref語法提案來襲 這次會(huì)進(jìn)入到標(biāo)準(zhǔn)嗎?》
  • 本文 (第二波語法糖的修改版)

我們先來簡(jiǎn)單的看一下,這三次語法糖的寫法:

第一波語法糖

第一波主要是模仿了Svelte的寫法,我們先來看看Svelte的中文官網(wǎng)給出來的一段例子:

  1. <script> 
  2. export let title; 
  3.  
  4. // 這將在“title”的prop屬性更改時(shí)更新“document.title” 
  5. $: document.title = title; 
  6.  
  7. $: { 
  8.   console.log(`multiple statements can be combined`); 
  9.   console.log(`the current title is ${title}`); 
  10. </script> 

 

這個(gè)$:是一種叫做label的語法,這種語法并不是Svelte自創(chuàng)的語法,而是一種長(zhǎng)期在被廢棄的邊緣上瘋狂試探的合法語法,只不過這種語法原本并不是這么用的,人家是用在嵌套循環(huán)上的:

 

  1. let num = 0 
  2.  
  3. outermost: 
  4. for (let i = 0; i < 10; i++) { 
  5.     for (let j = 0; j < 10; j++) { 
  6.         if (i == 5 && j == 5) { 
  7.             continue outermost 
  8.         } else { 
  9.             console.log(i, j, 88) 
  10.         } 
  11.         num++ 
  12.     } 
  13.  
  14. console.log(num) //95 

看不懂沒關(guān)系啊,也沒必要去弄懂這種語法,因?yàn)樗粔蛑庇^,用處也不是很大,所以幾乎沒什么人用它!我在編輯器寫這段代碼的時(shí)候 ESLint 都直報(bào)錯(cuò):

 

Vue3又出新語法 到底何時(shí)才能折騰完?

翻譯:Label語法源于GOTO語句,使用它將會(huì)令代碼變得難以理解、難以維護(hù)。—ESLint

不過既然沒什么人在用,同時(shí)它還是JS的合法語法,那用它來告訴編譯器這里是聲明了一個(gè)ref變量豈不是很完美?于是乎尤大也搞了個(gè)和Svelte類似的語法:

  1. <script setup> 
  2. ref: isLoading = true 
  3.  
  4. if (isLoading) { 
  5.   isLoading = false 
  6. </script> 

 

那么大家為何會(huì)如此反對(duì)呢?就是因?yàn)閘abel語法壓根兒就不是這么用的,人家原本是為了和break、continue配合使用的,雖然在別的地方用也不算是語法錯(cuò)誤,但你這么做明顯是修改了JS原本的語意!雖然尤大表示很不服啊:為什么Svelte用這玩意你們都沒說啥,我一用這玩意你們就開噴?!

個(gè)人感覺是因?yàn)镾velte從一開始就說自己是一個(gè)編譯器,沒有沉重的歷史包袱,而Vue卻恰恰相反。而且Svelte本身也不是什么主流框架,屬于給那幫愛折騰的人玩的。但Vue不一樣,已經(jīng)有多少人要靠著Vue吃飯呢,并不是所有人都那么愛折騰的。

于是在萬般無奈之下,尤大只好放棄了這個(gè)提案,但這件事在尤大心里始終還是揮之不去、如鯁在喉,于是乎他吸取了第一波語法糖的教學(xué),卷頭重來又起草了一份新提案:

第二波語法糖

  1. <script setup> 
  2. let loading = $ref(true
  3.  
  4. if (loading) { 
  5.   loading = false 
  6. </script> 

 

可以看到我們并沒有引入$ref這個(gè)變量,這個(gè)變量是從哪來的的呢?是只要在<script>標(biāo)簽里寫了setup這個(gè)屬性就會(huì)自動(dòng)注入的一個(gè)全局變量(需要先開啟實(shí)驗(yàn)性語法開關(guān))

尤大心想:你們不是嫌我之前用了不規(guī)范的語法么?那我這回這么寫應(yīng)該沒問題了吧!想想之前我們定義一個(gè)ref變量,首先需要先把ref引進(jìn)來然后才能用:

  1. import { ref } from 'vue'  
  2. const loading = ref(true

而新語法不用引,直接就能用,類似于全局變量的感覺。除了$ref這個(gè)特殊的全局變量呢,這次提案還有:$computed、$fromRefs和$raw這幾個(gè)玩意。我們一個(gè)個(gè)來看,先看$computed:

  1. <!-- 以前 --> 
  2. <script setup> 
  3. import { ref, computed } from 'vue' 
  4.  
  5. const num = ref(1) 
  6. const num_10 = computed(() => num.value * 10) 
  7. </script> 
  8.  
  9. <!-- 現(xiàn)在 --> 
  10. <script setup> 
  11. let num = $ref(1) 
  12. const num_10 = $computed(() => num * 10) 
  13. </script> 

 

$fromRefs又是個(gè)啥呢?這玩意在之前沒有啊!只聽說過toRefs:

  1. <script setup> 
  2. import { fromRefs } from 'vue' // 這個(gè)API并不存在 
  3. import { toRefs } from 'vue' // 這個(gè)API倒是有 也就是只有 to 沒有 from 
  4. </script> 

 

其實(shí)這個(gè)$fromRefs正是為了配合toRefs而產(chǎn)生的,比方說我們?cè)趧e的地方寫了一個(gè)useXxx:

 

  1. import { reactive } from 'vue' 
  2.  
  3. const state = reactive({ 
  4.     x: 0, 
  5.     y: 0 
  6. }) 
  7.  
  8. export default = (x = 0, y = 0) => { 
  9.     state.x = x 
  10.     state.y = y 
  11.      
  12.     return toRefs(state) 

于是我們?cè)谑褂玫臅r(shí)候就:

  1. <script setup> 
  2. import { useXxx } form '../useXxx.js' 
  3.  
  4. const { x, y } = useXxx(100, 200) 
  5.  
  6. console.log(x.value, y.value) 
  7. </script> 

 

這豈不是又要出現(xiàn)尤大最不想看到的.value屬性了嗎?所以$fromRefs就是為了解決這個(gè)問題而生的:

  1. <script setup> 
  2. import { useXxx } form '../useXxx.js' 
  3.  
  4. const { x, y } = $fromRefs(useXxx(100, 200)) 
  5.  
  6. console.log(x, y) 
  7. </script> 

 

最后一個(gè) API 就是$raw了,raw 不是原始的意思嘛!那么看名字也能猜到,就是我們用$ref所創(chuàng)建出來的其實(shí)是一個(gè)響應(yīng)式對(duì)象,而不是一個(gè)基本數(shù)據(jù)類型,但語法糖會(huì)讓我們?cè)谑褂玫倪^程中像是在用基本數(shù)據(jù)類型那樣可以改來改去,但有時(shí)我們想看看這個(gè)對(duì)象長(zhǎng)什么樣,那么我們就需要用到$raw了:

  1. <script setup> 
  2. const loading = $ref(true
  3.  
  4. console.log(loading) // 其實(shí)打印的不是 loading 這個(gè)對(duì)象 而是它里面的值 相當(dāng)于 loading.value 
  5. console.log($raw(loading)) // 這回打印的就是 loading 這個(gè)對(duì)象了 
  6. </script> 

 

改進(jìn)版

這一版語法糖沒過多久就又被改進(jìn)了,改進(jìn)版主要是把全局變量改為只有$和$$這倆變量了,假如我們不用語法糖時(shí)是這么寫:

 

  1. <script setup> 
  2. import { ref } from 'vue' 
  3.  
  4. const loading = ref(true
  5.  
  6. console.log(loading.value) 
  7. </script> 

 

用語法糖以后就變成了這樣:

  1. <script setup> 
  2. import { ref } from 'vue' 
  3.  
  4. const loading = $(ref(true)) 
  5.  
  6. console.log(loading) 
  7. </script> 

 

如果我們想還原 loading 這個(gè)變量,我們就需要用到$$了:

  1. <script setup> 
  2. import { ref } from 'vue' 
  3.  
  4. let loading = $(ref(true)) 
  5.  
  6. console.log($$(loading)) 
  7. </script> 

 

或者也可以寫成這樣:

  1. <script setup> 
  2. import { ref } from 'vue' 
  3.  
  4. const loadingRef = ref(true
  5. let loading = $(loadingRef) 
  6.  
  7. console.log(loadingRef === $$(loading)) 
  8. </script> 

 

第三波語法糖

第三波語法糖主要是在第二波語法的基礎(chǔ)上又進(jìn)行了改進(jìn),除了許多人覺得要寫成$(ref())的話實(shí)在是太那什么了…

另一方面則是實(shí)現(xiàn)了props的語法糖,新的語法主要是為每個(gè)能夠創(chuàng)建帶有.value變量的方法都有一個(gè)$前綴的等價(jià)物,比如:

  • ref
  • computed
  • shallowRef
  • customRef
  • toRef

與此同時(shí)保留了改進(jìn)版中的$變量與$$變量,用于對(duì)props的解構(gòu):

  1. <script setup> 
  2. const { isLoading } = $(defineProps({ isLoading: Boolean })) 
  3. </script> 

 

要知道在以前我們是不能對(duì)props進(jìn)行解構(gòu)的,而現(xiàn)在還可以利用ES6的解構(gòu)默認(rèn)值寫法來為props設(shè)置默認(rèn)值:

  1. <!-- 以前 --> 
  2. <script setup> 
  3. const props = defineProps({ 
  4.   isLoading: { 
  5.     type: Boolean, 
  6.     defaulttrue 
  7.   } 
  8. })) 
  9.  
  10. console.log(props.isLoading) 
  11. </script> 
  12.  
  13. <!-- 現(xiàn)在 --> 
  14. <script setup> 
  15. const { isLoading = true } = $(defineProps({ isLoading: Boolean })) 
  16.  
  17. console.log(isLoading) 
  18. </script> 

 

 

三波語法糖提案地址

  • 第一波:github.com/vuejs/rfcs/…
  • 第二波:github.com/vuejs/rfcs/…
  • 第三波:github.com/vuejs/rfcs/…

這個(gè)框架明明是中國(guó)人用的最多,但可笑的是居然是一群外國(guó)人在商量Vue的下一步計(jì)劃,看到這里肯定有人會(huì)說:中國(guó)人都忙著996呢,哪有空去探討那些東西…

那就看你是覺得:這些亂七八糟的語法糖對(duì)你來說無所謂,出什么語法我學(xué)什么就是了,我就是一只沉默的羔羊。

還是說:你只是在這篇文章的下面留個(gè)言說自己喜歡這些新語法或者討厭這些新語法,懶得去GitHub說英文。

鏈接已經(jīng)給大家貼上來了,就看大家是一副湊熱鬧的態(tài)度,還是點(diǎn)進(jìn)去鏈接勇敢的表達(dá)出自己的聲音了。當(dāng)然,如果去GitHub我們還是要說英文的,雖說用中文的話尤大也可以看得懂,但評(píng)論區(qū)不全是中國(guó)人,Vue還是有相當(dāng)一批外國(guó)粉絲的。而且也不全是美國(guó)人,那些不是英國(guó)人美國(guó)人的開發(fā)者,他們?nèi)绻仓粓D自己痛快而說自己國(guó)家的母語的話,想必我們就沒有辦法進(jìn)行溝通了,同時(shí)這也會(huì)進(jìn)一步拉近國(guó)人在海外的形象:別人都用英文,就你們中國(guó)人用自己的語言,不遵守規(guī)則。

那可能有人英文水平真的很差,我們可以這樣嘛:找到百度翻譯,輸入中文后翻譯成英文,然后再把英文復(fù)制過去。雖然這樣做翻譯的可能不完全準(zhǔn)確,但最起碼能達(dá)到勉強(qiáng)看懂的地步。同時(shí)還有一個(gè)技巧就是把翻譯成英文的句子再翻譯回中文,看看有哪些地方的語意發(fā)生了明顯的變化,我們?cè)籴槍?duì)那個(gè)地方重新自己寫一遍。

如果你喜歡這個(gè)語法,那就去多點(diǎn)幾個(gè)贊多夸幾句,這樣的話想必它很快就會(huì)被納入到Vue的標(biāo)準(zhǔn)語法里面去。

如果你不喜歡,那么就趕快去多噴幾句,這樣的話這個(gè)語法很有可能就會(huì)像第一波語法糖提案那樣被放棄掉了。

責(zé)任編輯:未麗燕 來源: 今日頭條
相關(guān)推薦

2022-03-24 20:42:19

Vue3API 設(shè)計(jì)Vue

2025-08-08 00:00:00

2011-11-08 10:30:05

Eclipse

2021-04-26 10:13:04

顯卡硬盤加密

2021-12-01 08:11:44

Vue3 插件Vue應(yīng)用

2021-04-24 08:17:25

比特幣區(qū)塊鏈加密貨幣

2012-11-20 16:23:19

飛輪UPS數(shù)據(jù)中心電源

2023-04-27 11:07:24

Setup語法糖Vue3

2021-11-30 08:19:43

Vue3 插件Vue應(yīng)用

2023-11-28 09:03:59

Vue.jsJavaScript

2020-09-19 21:15:26

Composition

2022-01-06 08:36:54

Vue3 插件Vue應(yīng)用

2024-03-15 08:45:31

Vue 3setup語法

2024-10-12 08:01:53

2009-04-23 13:10:11

AMDNehalemintel

2021-12-02 05:50:35

Vue3 插件Vue應(yīng)用

2025-11-19 08:23:42

2010-11-10 10:19:24

大學(xué)生

2025-10-17 07:10:00

前端開發(fā)Vue

2022-07-13 10:07:31

vue3組件監(jiān)聽器
點(diǎn)贊
收藏

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

日韩系列在线| 交100部在线观看| 国产呦精品一区二区三区网站| 久久夜色精品国产| 国产精品一区二区人妻喷水| 自拍偷拍欧美视频| 亚洲人成影院在线观看| 国产视频一区二区不卡| 久久精品99北条麻妃| 你懂的国产精品| 亚洲天堂av在线免费| 伊人成人免费视频| 欧美电影免费观看高清完整| 亚洲美女免费视频| 日韩av一级大片| 亚洲卡一卡二卡三| 美女在线观看视频一区二区| 久久久久久久香蕉网| 国产123在线| 999久久久久久久久6666| 欧美最猛黑人xxxxx猛交| av动漫在线免费观看| 成人网视频在线观看| 波多野结衣在线aⅴ中文字幕不卡| 国产精品美女www| 国产精品第108页| 天天射天天综合网| 亚洲欧美资源在线| 国产一级伦理片| 欧美国产中文高清| 欧美男男青年gay1069videost| 妞干网在线视频观看| 国产激情小视频在线| 国产亚洲综合色| 久久久久久久久久久一区| 国产福利免费视频| 美日韩一区二区三区| 日韩美女福利视频| 中文字幕亚洲精品一区| 欧美日韩国产探花| 欧美老少做受xxxx高潮| 欧美做爰啪啪xxxⅹ性| 国产在线观看91一区二区三区| 精品99999| 亚洲av综合色区无码另类小说| 狠狠久久综合| 欧美日韩精品是欧美日韩精品| 能在线观看的av网站| 欧美男男激情videos| 亚洲成人免费av| 青青草免费在线视频观看| 日本中文字幕在线播放| 中文字幕不卡在线观看| 日韩av电影免费观看| 视频一区二区三区在线看免费看| 成人动漫av在线| 国产精品区一区二区三含羞草| av在线资源观看| 国产成人综合亚洲网站| 91pron在线| 午夜老司机福利| 国产**成人网毛片九色| 成人看片在线| 亚洲视频一二三四| 激情亚洲影院在线观看| 91成人在线精品| aaa毛片在线观看| 亚洲四虎影院| 欧美日韩精品三区| 国产伦精品一区二区三区妓女下载| 高清久久精品| 精品久久久久久久久久久院品网| 在线观看一区二区三区四区| 国产精品视频3p| 亚洲精品自在久久| 貂蝉被到爽流白浆在线观看| 五月天综合网站| 欧美黄色片视频| 天堂网一区二区三区| 久久久噜噜噜| 成人伊人精品色xxxx视频| 国产模特av私拍大尺度| 成人av动漫在线| 久久伊人一区| av电影在线播放高清免费观看| 亚洲三级小视频| 婷婷无套内射影院| av高清一区| 日韩欧美亚洲另类制服综合在线 | 三级黄色在线观看| 中文字幕一区二区精品区| 亚州欧美日韩中文视频| 九九热最新视频| 国产伦理精品不卡| 开心色怡人综合网站| 秋霞a级毛片在线看| 亚洲福利一二三区| 国产福利影院在线观看| 日本一区二区乱| 亚洲人成电影在线播放| 青娱乐国产盛宴| 日韩精品免费视频人成| 国产精品免费看一区二区三区| 国产二区视频在线观看| 亚洲永久免费视频| 另类小说色综合| 久久悠悠精品综合网| 中文字幕成人在线| 日韩欧美一区二区一幕| 国模大尺度一区二区三区| 蜜桃成人免费视频| 制服丝袜在线播放| 欧美中文字幕不卡| 无码人妻aⅴ一区二区三区| 911精品美国片911久久久| 欧美在线视频a| 国产高清视频免费| 中文字幕不卡在线观看| 成人免费观看毛片| 成功精品影院| 久久久国产在线视频| 国产主播第一页| 北条麻妃一区二区三区| 天天干天天操天天干天天操| 国产精品高清乱码在线观看| 精品国产99国产精品| 日本在线一级片| 免费一区二区视频| 麻豆成人av| av资源中文在线| 日韩一本二本av| 亚洲一二三四五六区| 日日欢夜夜爽一区| 蜜桃视频在线观看91| 国产高清视频色在线www| 日韩三级中文字幕| 午夜精品久久久久99蜜桃最新版| 日韩中文字幕区一区有砖一区 | 在线视频一区二区免费| 最近中文字幕无免费| 伊人影院久久| 成人黄色片视频网站| av黄色在线| 91精品欧美久久久久久动漫| 国产黄a三级三级| 另类成人小视频在线| 亚洲不卡1区| 99久久久国产精品免费调教网站| 亚洲欧美制服综合另类| 久久精品视频2| 国产精品久久国产| 麻豆视频在线观看免费| 欧美日韩国产一区| 少妇高潮一区二区三区喷水| 免费人成在线不卡| 一本一道久久久a久久久精品91| 不卡亚洲精品| 日韩视频免费看| 国产精品九九九九| 亚洲精品网站在线观看| 91福利视频免费观看| 亚洲夜间福利| 免费国产一区二区| av成人免费看| 理论片在线不卡免费观看| 精品久久在线观看| 五月综合激情婷婷六月色窝| 久久久久久久久免费看无码| 久久aⅴ国产紧身牛仔裤| 日本一区二区三区四区在线观看| 2019年精品视频自拍| 少妇久久久久久| av加勒比在线| 天天亚洲美女在线视频| 欧美黄色一级生活片| 麻豆国产91在线播放| 日本丰满大乳奶| 美女一区2区| 国产精品你懂得| 中文字幕有码在线视频| 亚洲精品久久久久久下一站| 懂色av蜜臀av粉嫩av分享吧最新章节| 日本一区二区三区国色天香| 国内自拍第二页| 激情综合视频| 亚洲成人网上| 91午夜精品| 国产成人一区二区三区电影| 成人在线影视| 日韩精品久久久久| 国产又大又长又粗| 午夜精品一区二区三区电影天堂| 欧美日韩高清丝袜| 国产精品1区二区.| 成熟老妇女视频| 亚洲一区二区| 青青草国产精品| 这里视频有精品| 日本伊人精品一区二区三区介绍| 在线观看h片| 亚洲成成品网站| 亚洲综合五月天婷婷丁香| 亚洲v精品v日韩v欧美v专区| 午夜激情福利电影| wwwwxxxxx欧美| 亚洲精品国产久| 日韩国产高清在线| 黄色一级片播放| 欧美日韩日本国产亚洲在线| 色一情一区二区三区四区| jazzjazz国产精品久久| 成人免费淫片aa视频免费| 国产精品迅雷| 久久久亚洲影院| а√中文在线8| 中文字幕日韩在线观看| 视频一区二区三区在线看免费看| 日韩欧美中文一区二区| 中文字幕一区二区三区四区免费看| 午夜精彩视频在线观看不卡| 国产午夜精品理论片| 国产欧美日韩麻豆91| 国产乱了高清露脸对白| 成人综合婷婷国产精品久久蜜臀| 性生活免费在线观看| 久久aⅴ国产紧身牛仔裤| 国产欧美日韩网站| 亚洲视频久久| www婷婷av久久久影片| 久久久影院免费| 日本电影一区二区三区| 亚欧洲精品视频在线观看| 国产精品区一区| caoporn成人免费视频在线| 亚洲a中文字幕| 成人在线视频国产| 成人激情视频在线观看| 亚洲欧美一级| 成人欧美一区二区三区在线湿哒哒| 日韩欧美看国产| 国产成人综合一区二区三区| 丝袜诱惑一区二区| 欧美诱惑福利视频| 中文字幕影音在线| 欧洲永久精品大片ww免费漫画| 天堂网在线最新版www中文网| 国模精品视频一区二区| av中文在线资源| 午夜精品一区二区三区在线播放| 国产91足控脚交在线观看| 久久久久国产一区二区三区| 暧暧视频在线免费观看| 久久久在线观看| 蜜桃视频www网站在线观看| 2021国产精品视频| 成人做爰视频www网站小优视频| 日韩女优在线播放| 中文字幕系列一区| 成人xvideos免费视频| 精品91福利视频| 97夜夜澡人人双人人人喊| 亚洲图色一区二区三区| 国产精品日韩二区| 欧美美女黄色| 日本在线观看一区二区| 日韩成人影院| 黑人巨茎大战欧美白妇| 亚洲乱亚洲高清| 国产自偷自偷免费一区 | 欧美国产精品人人做人人爱| 92久久精品| 日本精品久久久| 久久女人天堂| 亚洲自拍偷拍区| 亚洲69av| 一本色道久久综合亚洲精品婷婷 | 国产第一页视频| 麻豆视频观看网址久久| 丰满少妇中文字幕| 久久综合九色综合97婷婷女人| av女人的天堂| 亚洲三级在线免费观看| www.国产高清| 欧美二区三区的天堂| 欧美自拍第一页| 在线播放日韩av| 免费在线观看的电影网站| 欧美最猛性xxxxx亚洲精品| 久久影视精品| 国产欧美在线一区二区| 日韩中文首页| 国产精品自拍片| 国产在线精品一区二区不卡了| 稀缺小u女呦精品呦| 欧美韩日一区二区三区四区| 久久久久人妻一区精品色欧美| 91福利国产成人精品照片| 成人av手机在线| 欲色天天网综合久久| av女在线播放| 97se在线视频| 成人在线免费小视频| 国产 日韩 欧美在线| 另类小说一区二区三区| www.自拍偷拍| 夜色激情一区二区| 一本色道久久综合熟妇| 日韩久久免费电影| 欧美xxxxhdvideosex| 国产精品女视频| 免费av一区| 久久国产午夜精品理论片最新版本| 免费av网站大全久久| 美女久久久久久久久久| 亚洲尤物在线视频观看| 一本到在线视频| 在线播放国产精品| 欧美人与性动交xxⅹxx| 国产伦视频一区二区三区| 亚洲草久电影| 91色国产在线| 久久众筹精品私拍模特| 国产午夜精品无码| 日韩精品资源二区在线| 嫩草在线视频| 国产精品久久精品| 九一成人免费视频| 黄色一级片播放| 99久久久免费精品国产一区二区 | 日韩欧美在线视频| 亚洲老妇色熟女老太| 萌白酱国产一区二区| 亚洲伊人伊成久久人综合网| 先锋影音网一区| 日本不卡中文字幕| 国产精品久久久视频| 色欧美片视频在线观看在线视频| 色视频在线观看福利| 97免费在线视频| 青青草这里只有精品| 免费国产黄色网址| a级高清视频欧美日韩| 国产性70yerg老太| 精品福利一区二区三区 | 中文字幕一区二区三区欧美日韩 | 欧美国产精品一区二区三区| 亚洲不卡在线视频| 国产亚洲精品美女久久久| se01亚洲视频| 丝袜美腿玉足3d专区一区| 蜜乳av一区二区| 五月天婷婷色综合| 日韩精品一区二区在线观看| 欧美xxx黑人xxx水蜜桃| 国产一区二区中文字幕免费看| 亚洲经典在线看| 亚洲黄色在线网站| 色久优优欧美色久优优| 国产1区2区3区在线| 91精品免费看| 欧美xxx在线观看| 亚洲av永久无码精品| 欧美日韩国产区| 国产乱子伦三级在线播放| 国产精品视频中文字幕91| 欧美岛国激情| 色综合久久久无码中文字幕波多| 亚洲午夜久久久久| 日本福利在线观看| 国产精自产拍久久久久久蜜| 香蕉av一区二区| 一区二区三区四区影院| 欧美日韩激情小视频| av播放在线观看| av观看久久| 久久精品人人| 欧美性生给视频| 亚洲国产91精品在线观看| 韩国成人动漫| 91麻豆天美传媒在线| 波多野洁衣一区| 亚洲视频一区在线播放| 九九久久久久99精品| 妖精视频一区二区三区免费观看| 99草草国产熟女视频在线| 亚洲女与黑人做爰| 日韩国产福利| 91色琪琪电影亚洲精品久久| 在线亚洲精品| 亚洲欧美精品久久| 亚洲国产精久久久久久 | 国精品人伦一区二区三区蜜桃| 欧美成人综合网站| 成人日韩在线| 国产精品久久久久久久乖乖| 中文字幕 久热精品 视频在线 | 97se狠狠狠综合亚洲狠狠| 伊人网免费视频| 68精品国产免费久久久久久婷婷| 残酷重口调教一区二区|