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

VueUse中的這五個函數(shù),也太好用了吧

開發(fā) 前端
VueUse 是 Anthony Fu 大佬的一個開源項目,它為Vue的開發(fā)者提供了大量用于 Vue2 和Vue3 的基本 Composition API 實用工具函數(shù)。

[[416807]]

VueUse 是 Anthony Fu 大佬的一個開源項目,它為Vue的開發(fā)者提供了大量用于 Vue2 和Vue3 的基本 Composition API 實用工具函數(shù)。

它有幾十個用于常見開發(fā)人員用例的解決方案,如跟蹤ref更改,檢測元素可見性,簡化常見Vue模式,鍵盤/鼠標輸入等。 這是真正節(jié)省開發(fā)時間的好方法,因為我們不必自己親手添加所有這些標準功能,拿來主義,用就對了(再次感謝大佬的付出)。

我喜歡VueUse庫,因為它在決定提供哪些實用工具時真正把開發(fā)者放在第一位,而且它是一個維護良好的庫,因為它與Vue的當前版本保持同步。

VueUse 有哪些實用方法?

如果你想看到每一個實用程序的完整列表,建議去看看官方文檔。但總結(jié)一下,VueUse 中有9種類型的函數(shù)。

  • Animation(動畫) - 包含易于使用的過渡、超時和計時功能
  • Browser (瀏覽器) - 可以用于不同的屏幕控件、剪貼板、首選項等等
  • Component (組件) - 為不同的組件方法提供簡寫
  • Sensors (傳感器)- 用來監(jiān)聽不同的DOM事件、輸入事件和網(wǎng)絡事件
  • State (狀態(tài)) - 管理用戶狀態(tài)(全局,本地存儲,會話存儲)
  • Utility (實用方法)--不同的實用方法,如getters、conditionals、ref synchronization等。
  • Watch --更高級的觀察器類型,如可暫停的觀察器、放棄的觀察器和條件觀察器
  • 其它 - 事件、WebSockets和 Web workers 的不同類型的功能

將 Vueuse 安裝到 Vue 項目中

VueUse 的最大特點之一是,它只用一個包就能兼容 Vue2 和 Vue3!

安裝VueUse有兩種選擇:npm或 CDN

  1. npm i @vueuse/core # yarn add @vueuse/core 
  1. <script src="https://unpkg.com/@vueuse/shared"></script> 
  2. <script src="https://unpkg.com/@vueuse/core"></script> 

推薦使用NPM,因為它更容易理解,但如果我們使用CDN, 可能通過 window.VueUse 來訪問。

使用 npm,可以通過解構(gòu)的方式來獲得想要的方法:

  1. import { useRefHistory } from '@vueuse/core' 

useRefHistory 跟蹤響應式數(shù)據(jù)的變化

useRefHistory跟蹤對 ref 所做的每一個改變,并將其存儲在一個數(shù)組中。這樣我們能夠輕松為應用程序提供撤銷和重做功能。

來看一個示例,在該示例中,我們做一個能夠撤銷的文本區(qū)域

第一步是在沒有 VueUse 的情況下創(chuàng)建我們的基本組件--使用ref、textarea、以及用于撤銷和重做的按鈕。

  1. <template> 
  2.   <p>  
  3.     <button> Undo </button> 
  4.     <button> Redo </button> 
  5.   </p> 
  6.   <textarea v-model="text"/> 
  7. </template> 
  8.  
  9. <script setup> 
  10. import { ref } from 'vue' 
  11. const text = ref(''
  12. </script> 
  13.  
  14. <style scoped> 
  15.   button { 
  16.     border: none; 
  17.     outline: none; 
  18.     margin-right: 10px; 
  19.     background-color: #2ecc71; 
  20.     color: white; 
  21.     padding: 5px 10px;; 
  22.   } 
  23. </style> 

接著,導入useRefHistory,然后通過 useRefHistory從 text 中提取history、undo和redo屬性。

  1. import { ref } from 'vue' 
  2. import { useRefHistory } from '@vueuse/core' 
  3.  
  4. const text = ref(''
  5. const { history, undo, redo } = useRefHistory(text) 

每當我們的ref發(fā)生變化,更新history屬性時,就會觸發(fā)一個監(jiān)聽器。

為了看看底層做了什么,我們把 history 內(nèi)容打印出來。并在單擊相應按鈕時調(diào)用 undo 和redo函數(shù)。

  1. <template> 
  2.   <p>  
  3.     <button @click="undo"> Undo </button> 
  4.     <button @click="redo"> Redo </button> 
  5.   </p> 
  6.   <textarea v-model="text"/> 
  7.   <ul> 
  8.     <li v-for="entry in history" :key="entry.timestamp"
  9.       {{ entry }} 
  10.     </li> 
  11.   </ul> 
  12. </template> 
  13.  
  14. <script setup> 
  15. import { ref } from 'vue' 
  16. import { useRefHistory } from '@vueuse/core' 
  17. const text = ref(''
  18. const { history, undo, redo } = useRefHistory(text) 
  19. </script> 
  20.  
  21. <style scoped> 
  22.   button { 
  23.     border: none; 
  24.     outline: none; 
  25.     margin-right: 10px; 
  26.     background-color: #2ecc71; 
  27.     color: white; 
  28.     padding: 5px 10px;; 
  29.   } 
  30. </style> 

直接,跑起來,效果如下:

VueUse中的這5個函數(shù),也太好用了吧

還有不同的選項,為這個功能增加更多的功能。例如,我們可以深入追蹤 reactive 對象,并像這樣限制 history 記錄的數(shù)量。

  1. const { history, undo, redo } = useRefHistory(text, { 
  2.   deep: true
  3.   capacity: 10, 
  4. }) 

onClickOutside 關(guān)閉 modal

onClickOutside 檢測在一個元素之外的任何點擊。根據(jù)我的經(jīng)驗,這個功能最常見的使用情況是關(guān)閉任何模態(tài)或彈出窗口。

通常,我們希望我們的模態(tài)屏蔽網(wǎng)頁的其余部分,以吸引用戶的注意和限制錯誤。然而,如果他們確實點擊了模態(tài)之外,我們希望它關(guān)閉。

要做到這一點,只有兩個步驟。

  • 為要檢測的元素創(chuàng)建一個模板引用
  • 使用這個模板ref運行onClickOutside

這是一個簡單的組件,使用onClickOutside彈出窗口。

  1. <template> 
  2.   <button @click="open = true"Open Popup </button> 
  3.   <div class="popup" v-if='open'
  4.     <div class="popup-content" ref="popup"
  5.       Lorem ipsum dolor sit amet consectetur adipisicing elit. Corporis aliquid autem reiciendis eius accusamus sequi, ipsam corrupti vel laboriosam necessitatibus sit natus vero sint ullam! Omnis commodi eos accusantium illum? 
  6.     </div> 
  7.   </div> 
  8. </template> 
  9.  
  10. <script setup> 
  11. import { ref } from 'vue' 
  12. import { onClickOutside } from '@vueuse/core' 
  13. const open = ref(false) // state of our popup 
  14. const popup = ref() // template ref 
  15. // whenever our popup exists, and we click anything BUT it 
  16. onClickOutside(popup, () => { 
  17.   open.value  = false 
  18. }) 
  19. </script> 
  20.  
  21. <style scoped> 
  22.   button { 
  23.     border: none; 
  24.     outline: none; 
  25.     margin-right: 10px; 
  26.     background-color: #2ecc71; 
  27.     color: white; 
  28.     padding: 5px 10px;; 
  29.   } 
  30.   .popup { 
  31.     position: fixed; 
  32.     top: ; 
  33.     left: ; 
  34.     width: 100vw; 
  35.     height: 100vh; 
  36.     display: flex; 
  37.     align-items: center; 
  38.     justify-content: center; 
  39.     background: rgba(, , , 0.1); 
  40.   } 
  41.   .popup-content { 
  42.     min-width: 300px; 
  43.     padding: 20px; 
  44.     width: 30%; 
  45.     background: #fff; 
  46.   } 
  47. </style 

結(jié)果是這樣的,我們可以用我們的按鈕打開彈出窗口,然后在彈出內(nèi)容窗口外單擊關(guān)閉它。

VueUse中的這5個函數(shù),也太好用了吧

useVModel 簡化 v-model 的綁定。

Vue開發(fā)者的一個常見用例是為一個組件創(chuàng)建一個自定義的v-model綁定。這也要求我們的組件接受一個 value 作為 prop,每當這個 value 被修改,我們的組件就會向父類發(fā)出一個 update 事件。

useVModel函數(shù)將其簡化為只使用標準的ref語法。假設我們有一個自定義的文本輸入,試圖為其文本輸入的值創(chuàng)建一個v-model。通常情況下,我們必須接受一個 value的 prop,然后發(fā)出一個 change事件來更新父組件中的數(shù)據(jù)值。

我們可以使用useVModel,把它當作一個普通的ref,而不是使用ref并調(diào)用props.value和update:value。這有助于減少我們需要記住的不同語法的數(shù)量!

  1. <template> 
  2.     <div> 
  3.         <input  
  4.             type="text"  
  5.             :value="data" 
  6.             @input="update" 
  7.         /> 
  8.     </div> 
  9. </template> 
  10.  
  11. <script> 
  12. import { useVModel } from '@vueuse/core' 
  13. export default { 
  14.   props: ['data'], 
  15.   setup(props, { emit }) { 
  16.     const data = useVModel(props, 'data', emit) 
  17.     console.log(data.value) // equal to props.data 
  18.     data.value = 'name' // equal to emit('update:data''name'
  19.     const update = (event) => { 
  20.         data.value = event.target.value 
  21.     } 
  22.     return { 
  23.         data, 
  24.         update 
  25.     } 
  26.   }, 
  27. </script> 

每當需要訪問value時,我們只需調(diào)用.value,useVModel將從我們的組件 props 中給我們提供值。而每當改變對象的值時,useVModel 會向父組件發(fā)出一個更新事件。

下面是父組件的一個簡單示例

  1. <template> 
  2.   <div> 
  3.     <p> {{ data }} </p> 
  4.     <custom-input  
  5.       :data="data"  
  6.       @update:data="data = $event" 
  7.     /> 
  8.   </div> 
  9. </template> 
  10.  
  11. <script> 
  12. import CustomInput from './components/CustomInput.vue' 
  13. import { ref } from 'vue' 
  14. export default { 
  15.   components: { 
  16.     CustomInput, 
  17.   }, 
  18.   setup () { 
  19.     const data = ref('hello'
  20.     return { 
  21.       data 
  22.     } 
  23.   } 

運行結(jié)果如下,父方的值總是與子方的輸入保持同步:

VueUse中的這5個函數(shù),也太好用了吧

使用 intersectionobserver 跟蹤元素的可見性

當確定兩個元素是否重疊時,useIntersectionObserver 是非常強大的。這方面的一個很好的用例是檢查一個元素在視口中是否當前可見。

基本上,它檢查目標元素與根元素/文檔相交的百分比。如果這個百分比超過了某個閾值,它就會調(diào)用一個回調(diào),確定目標元素是否可見。

useIntersectionObserver提供了一個簡單的語法來使用IntersectionObserver API。我們所需要做的就是為我們想要檢查的元素提供一個模板ref。

默認情況下,IntersectionObserver將以文檔的視口為根基,閾值為0.1--所以當這個閾值在任何一個方向被越過時,我們的交集觀察器將被觸發(fā)。

示例:我們有一個假的段落,只是在我們的視口中占據(jù)了空間,目標元素,然后是一個打印語句,打印我們元素的可見性。

  1. <template> 
  2.   <p> Is target visible? {{ targetIsVisible }} </p> 
  3.   <div class="container"
  4.     <div class="target" ref="target"
  5.       <h1>Hello world</h1> 
  6.     </div> 
  7.   </div> 
  8. </template> 
  9.  
  10. <script> 
  11. import { ref } from 'vue' 
  12. import { useIntersectionObserver } from '@vueuse/core' 
  13. export default { 
  14.   setup() { 
  15.     const target = ref(null
  16.     const targetIsVisible = ref(false
  17.     const { stop } = useIntersectionObserver( 
  18.       target, 
  19.       ([{ isIntersecting }], observerElement) => { 
  20.         targetIsVisible.value = isIntersecting 
  21.       }, 
  22.     ) 
  23.     return { 
  24.       target, 
  25.       targetIsVisible, 
  26.     } 
  27.   }, 
  28. </script> 
  29.  
  30. <style scoped> 
  31. .container { 
  32.   width: 80%; 
  33.   margin:  auto; 
  34.   background-color: #fafafa; 
  35.   max-height: 300px; 
  36.   overflow: scroll
  37. .target { 
  38.   margin-top: 500px; 
  39.   background-color: #1abc9c; 
  40.   color: white; 
  41.   padding: 20px; 
  42. </style> 

運行后,對應的值會更新:

VueUse中的這5個函數(shù),也太好用了吧

我們還可以為我們的 Intersection Observer 指定更多的選項,比如改變它的根元素、邊距(計算交叉點時對根的邊界框的偏移)和閾值水平。

  1. const { stop } = useIntersectionObserver( 
  2.       target, 
  3.       ([{ isIntersecting }], observerElement) => { 
  4.         targetIsVisible.value = isIntersecting 
  5.       }, 
  6.       { 
  7.         // root, rootMargin, threshold, window 
  8.         // full options in the source: https://github.com/vueuse/vueuse/blob/main/packages/core/useIntersectionObserver/index.ts 
  9.         threshold: 0.5, 
  10.       } 

同樣重要的是,這個方法返回一個 stop 函數(shù),我們可以調(diào)用這個函數(shù)來停止觀察交叉點。如果我們只想追蹤一個元素在屏幕上第一次可見的時候,這就特別有用。

在這段代碼中,一旦targetIsVisible被設置為true,observer 就會停止,即使我們滾動離開目標元素,我們的值也會保持為 true 。

  1. const { stop } = useIntersectionObserver( 
  2.       target, 
  3.       ([{ isIntersecting }], observerElement) => { 
  4.         targetIsVisible.value = isIntersecting 
  5.         if (isIntersecting) { 
  6.           stop() 
  7.         } 
  8.       }, 
  9.     ) 

使用 useTransition 做個數(shù)字加載動畫

useTransition是整個VueUse庫中我最喜歡的函數(shù)之一。它允許我們只用一行就能順利地在數(shù)值之間進行過渡。

如果使用 useTransition 做一個下面這樣的效果,要怎么做呢?

VueUse中的這5個函數(shù),也太好用了吧

我們可以通過三個步驟來做到這一點。

  • 初始化一個 ref 變量 count ,初始值為 0
  • 使用 useTransition 創(chuàng)建一個變量 output
  • 改變 count 的值
  1. import { ref } from 'vue' 
  2. import { useTransition, TransitionPresets } from '@vueuse/core' 
  3.  
  4. const count = ref(0) 
  5.  
  6. const output = useTransition(count , { 
  7.   duration: 3000, 
  8.   transition: TransitionPresets.easeOutExpo, 
  9. }) 
  10.  
  11. count.value = 5000 
  12.  
  13. </script> 

然后在 template 中顯示 output 的值:

  1. <template> 
  2.   <h2>  
  3.     <p> Join over </p> 
  4.     <p> {{ Math.round(output) }}+ </p> 
  5.     <p>Developers </p> 
  6.   </h2> 
  7. </template> 
  8.  
  9. <script setup> 
  10. import { ref } from 'vue' 
  11. import { useTransition, TransitionPresets } from '@vueuse/core' 
  12. const count = ref(0) 
  13. const output = useTransition(count, { 
  14.   duration: 3000, 
  15.   transition: TransitionPresets.easeOutExpo, 
  16. }) 
  17. count.value = 5000 
  18. </script> 

運行結(jié)果:

VueUse中的這5個函數(shù),也太好用了吧

我們還可以使用useTransition 轉(zhuǎn)換整個數(shù)字數(shù)組。 使用位置或顏色時,這非常有用。 使用顏色的一個很好的技巧是使用計算的屬性將RGB值格式化為正確的顏色語法。

  1. <template> 
  2.   <h2 :style="{ color: color } "> COLOR CHANGING </h2> 
  3. </template> 
  4.  
  5. <script setup> 
  6. import { ref, computed } from 'vue' 
  7. import { useTransition, TransitionPresets } from '@vueuse/core' 
  8. const source = ref([, , ]) 
  9. const output = useTransition(source, { 
  10.   duration: 3000, 
  11.   transition: TransitionPresets.easeOutExpo, 
  12. }) 
  13. const color = computed(() => { 
  14.   const [r, g, b] = output.value 
  15.   return `rgb(${r}, ${g}, ${b})` 
  16. }) 
  17. source.value = [255, , 255] 
  18. </script> 
VueUse中的這5個函數(shù),也太好用了吧

總結(jié)

這不是VueUse的完整指南。這些只是我平常比較常用的函數(shù),還有很多好用的函數(shù),大家可以自行到官網(wǎng)去學習使用。

作者:Matt Maribojoc 譯者:前端小智 來源:medium

原文:https://learvue.co/2021/07/5-vueuse-library-functions-that-can-speed-up-development/

 

責任編輯:姜華 來源: 今日頭條
相關(guān)推薦

2024-12-13 16:01:35

2022-05-31 09:42:49

工具編輯器

2020-06-18 10:02:25

Python 開發(fā)編程語言

2020-11-10 06:11:59

工具軟件代碼

2021-03-18 10:12:54

JavaCompletable字符串

2021-07-27 18:02:01

VueUse 函數(shù)開發(fā)

2025-07-29 09:36:51

2025-07-07 03:00:00

2022-07-14 08:36:28

NacosApollo長輪詢

2024-05-11 09:38:05

React編譯器React 19

2025-09-29 09:32:32

2022-08-01 07:02:06

SpringEasyExcel場景

2021-04-22 09:56:32

MYSQL開發(fā)數(shù)據(jù)庫

2021-03-19 09:48:10

Jupyter Not插件Python

2020-12-29 10:45:55

開發(fā)設計代碼

2020-06-23 15:58:42

心電圖

2022-09-06 10:52:04

正則庫HumrePython

2021-09-10 10:15:24

Python人臉識別AI

2022-05-11 14:43:37

WindowsPython服務器

2022-07-25 06:42:24

分布式鎖Redis
點贊
收藏

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

色哟哟一区二区| 成人中文字幕在线| 日韩一中文字幕| 精品人妻人人做人人爽夜夜爽| 国精产品一区一区三区mba下载| 99精品视频免费在线观看| 国产国语刺激对白av不卡| 顶臀精品视频www| 日本福利一区| 9191精品国产综合久久久久久| 日本wwwcom| 成人高潮成人免费观看| 国产高清精品在线| 国产精品爽爽ⅴa在线观看| 欧美人妻精品一区二区免费看| 免费看日本一区二区| 欧美电影免费观看完整版| 亚洲 中文字幕 日韩 无码| 婷婷在线播放| 中文字幕日韩精品一区| 麻豆一区区三区四区产品精品蜜桃| 91精品视频免费在线观看| 国产精品99免费看| 色狠狠久久aa北条麻妃| 丰满圆润老女人hd| 岛国精品一区| 欧美一区二区三区在| 国产精品视频黄色| 日韩欧美精品一区二区三区| 亚洲乱码国产乱码精品精的特点| 欧美一区二区视频在线| 亚洲av无码一区二区三区性色| 日韩电影一区二区三区四区| 18一19gay欧美视频网站| 久久视频免费看| 亚洲h色精品| 在线精品视频视频中文字幕| 国产伦精品一区二区三区妓女| 999久久久久久久久6666| 欧美久久久久久久久久| 三级在线视频观看| 日韩天堂在线| 欧美日韩亚洲一区二区| 欧美 日韩 亚洲 一区| 青草在线视频在线观看| 最新国产精品久久精品| 在线观看日韩片| 91在线视频| 国产精品天干天干在线综合| 欧美亚洲另类久久综合| 欧美成人片在线| 91在线精品一区二区三区| 精品一区二区三区视频日产| 手机福利小视频在线播放| 国产成人在线观看| 91成人免费视频| www久久久久久| 国产成人自拍在线| 国产精品免费一区二区三区| 神马久久久久久久久久| 99久久777色| 久久手机视频| 国产一区精品| 国产精品久久午夜夜伦鲁鲁| 性欧美18一19内谢| av免费网站在线| 亚洲国产日韩一级| 日韩精品视频一区二区在线观看| 成人小电影网站| 欧美午夜精品久久久久久超碰 | 欧美色大人视频| 黄色手机在线视频| 精品一区二区三区免费看| 这里只有精品视频在线观看| 午夜激情视频网| 国产乱人伦精品一区| 亚洲精品720p| 亚洲黄色免费视频| 久久精品影视| 久久久午夜视频| 无码人妻av免费一区二区三区| 日日夜夜免费精品| 91中文在线观看| 天天综合永久入口| 国产精品热久久久久夜色精品三区| 日韩video| yellow在线观看网址| 欧美在线观看视频在线| 日本中文字幕在线不卡| 精品在线网站观看| 日韩有码在线视频| 欧美日韩乱国产| 精品一区二区三区视频| 精品久久蜜桃| 老司机福利在线视频| 亚洲高清一区二区三区| 色婷婷狠狠18| 黑人久久a级毛片免费观看| 国产一区二区三区网站| 日韩a级片在线观看| 欧美在线综合| 99高清视频有精品视频| 国产乱视频在线观看| 亚洲自拍欧美精品| 第一区免费在线观看| 久久久久影视| 久久国产色av| 五月天中文字幕| 不卡在线视频中文字幕| 亚洲天堂av免费在线观看| 日本乱码一区二区三区不卡| 欧美一区二区三区日韩视频| 久久久久久久久久久久| 欧美日本亚洲韩国国产| 国产欧美精品va在线观看| 日韩性xxxx| 亚洲精品乱码久久久久久黑人| 欧美两根一起进3p做受视频| 久久超级碰碰| 欧美黄网免费在线观看| 一级特黄aaa大片在线观看| 久久亚洲一级片| 国产传媒久久久| 亚洲综合资源| 中文字幕精品国产| 黄色av一级片| 337p粉嫩大胆色噜噜噜噜亚洲| 日韩精品久久一区二区| 国产剧情一区二区在线观看| 一道本无吗dⅴd在线播放一区 | 国产亚洲一区在线播放| 国产网友自拍视频导航网站在线观看 | 国产一区二区三区在线观看免费| 欧美久久久久久一卡四| 久久男人天堂| 亚洲国产精品久久久| 久久亚洲av午夜福利精品一区| 国产一区亚洲一区| 亚洲第一综合网站| 亚洲人成777| 精品国偷自产在线视频| 国产精品免费入口| 老色鬼在线视频| 欧美tk—视频vk| chinese全程对白| 免费的成人av| 亚洲精品永久www嫩草| 性欧美18xxxhd| 色94色欧美sute亚洲线路一久| 久久综合给合久久狠狠色| 91豆花视频在线播放| 欧美极品另类videosde| 亚洲综合中文字幕在线| 色视频免费在线观看| 狠狠躁夜夜躁人人爽超碰91| 亚洲无亚洲人成网站77777| 激情五月五月婷婷| 福利视频在线看| 亚洲日本va在线观看| 一起操在线视频| 欧美韩日一区| 精品国产免费视频| 久久久精品一区二区涩爱| 国产成人午夜99999| 91久久精品一区| 色窝窝无码一区二区三区成人网站| 亚洲日本成人在线观看| 下面一进一出好爽视频| 国产在线欧美| 国产亚洲a∨片在线观看| 欧美一级淫片免费视频黄| 在线观看视频日韩| 国产精品嫩草影院一区二区| 91在线不卡| 99在线精品免费视频九九视 | 黄网站app在线观看| 亚洲视频一二三区| 自拍偷拍99| 日韩欧美看国产| 亚洲精品久久久久| 国产精品成人久久久| 一区二区电影在线观看| 成人免费在线网址| 色婷婷狠狠18| 亚洲妇熟xxxx妇色黄| 精品国产一区二区精华| 男人的天堂久久久| 国内精品久久久久久久久电影网| 亚洲精品视频在线观看视频| 久久免费精彩视频| 久久精品一区二区三区不卡| 97视频热人人精品| 懂色av一区| 一区二区在线视频| 午夜免费福利影院| 在线精品国产亚洲| 欧美成人激情视频免费观看| 五十路在线视频| 国产一区在线看| 亚洲第一综合网站| xxxxxhd亚洲人hd| 91精品一区二区三区久久久久久| 另类小说第一页| 久久99精品久久久久久野外| 国产麻豆精品视频| 欧美一级片在线看| 加勒比婷婷色综合久久| 欧美顶级大胆免费视频| 一区二区三区在线视频免费 | 国产一区二区三区在线观看精品 | 另类中文字幕国产精品| 久久91亚洲精品中文字幕奶水| 久久久久久女乱国产| 精品日韩成人av| 国产精品乱码久久久| 色哟哟欧美精品| 日本一区二区三区四区五区| 亚洲色欲色欲www在线观看| 精品少妇一区二区三区免费观| 成人综合婷婷国产精品久久蜜臀| 日韩中文字幕a| 日韩精品一二三四| 69堂免费视频| 激情亚洲网站| 国风产精品一区二区| 久久免费大视频| 日本免费高清一区二区| 六月丁香久久丫| 国产99午夜精品一区二区三区 | 日本成人免费视频| 97久久超碰国产精品电影| 色欲欲www成人网站| 国产综合久久久久久久久久久久| 亚洲色图38p| 日韩制服丝袜av| 欧美激情国产精品日韩| 国产视频久久| 男人揉女人奶房视频60分| 亚洲成人直播| 奇米精品一区二区三区| 在线国产日韩| 波多野结衣乳巨码无在线| 激情欧美日韩一区| 91成人在线观看喷潮教学| 伊人精品视频| 僵尸世界大战2 在线播放| 好看的日韩av电影| 可以在线看的av网站| 亚洲国产激情| 国产a级一级片| 噜噜噜在线观看免费视频日韩| 久久国产成人精品国产成人亚洲| 亚洲精选一区| 亚洲人成无码www久久久| 三级久久三级久久| 中文字幕国产传媒| 精品综合久久久久久8888| 亚洲精品成人在线播放| 国产精选一区二区三区| 欧美xxxx日本和非洲| 成人av电影在线观看| 波多野结衣视频播放| 久久综合给合久久狠狠狠97色69| 蜜桃传媒一区二区亚洲av| 国产亚洲欧美日韩日本| a资源在线观看| 亚洲色欲色欲www在线观看| 成人免费看片98| 欧美日韩午夜剧场| 青青草视频在线观看免费| 欧美最猛性xxxxx直播| 一本色道久久综合精品婷婷 | 香蕉久久国产av一区二区| 精品呦交小u女在线| 波多野结衣一区二区| 久久国产精品免费视频 | 久久中文字幕av| 亚洲国产一二三精品无码| 亚洲区一区二| 黄色一级一级片| 国产一区二区久久| 国产精品嫩草av| 国产精品国产三级国产普通话蜜臀 | 日韩动漫一区| 亚洲一区二区三区加勒比| 国内成人在线| 午夜视频你懂的| 高清国产一区二区| 亚洲日本精品视频| 夜夜亚洲天天久久| 无码人妻精品一区二区三区不卡| 欧美日韩激情一区二区三区| 国产 欧美 自拍| 在线观看久久av| rebdb初裸写真在线观看| 国产精品成人国产乱一区| 亚洲三级av| 日本在线播放一区| 韩国av一区| 日本三级黄色网址| 91麻豆国产在线观看| 97在线观看视频免费| 欧美日韩国产激情| 国产熟女一区二区三区四区| 日韩精品免费视频| 色呦呦在线播放| 国产男人精品视频| 综合国产视频| 免费网站在线观看视频| 久久精品久久精品| 久久久久久久久久久久久久久| 亚洲黄色av一区| 中文字幕在线观看视频一区| 亚洲精品电影网在线观看| 黄色成年人视频在线观看| 国产精品91一区| 日本中文字幕在线一区| 综合色婷婷一区二区亚洲欧美国产| 国产日韩欧美在线播放不卡| 激情av中文字幕| 综合亚洲深深色噜噜狠狠网站| 成人公开免费视频| 亚洲电影免费观看高清完整版在线观看| √天堂资源地址在线官网| 日本三级久久久| 婷婷综合电影| 毛片在线播放视频| 成人免费视频视频在线观看免费| 成人涩涩小片视频日本| 在线视频国产一区| 麻豆av电影在线观看| 欧洲美女7788成人免费视频| 国产区精品视频在线观看豆花| 久久av高潮av| 国产成人精品免费视频网站| 免费在线观看h片| 制服.丝袜.亚洲.另类.中文 | 亚洲人成网站色在线观看| 国产精品久久久久久久久夜色| 亚洲精品日韩在线| 中文在线中文资源| 久久国产精品久久精品国产| 一区二区黄色| 亚洲精品乱码久久久久久久| 岛国av一区二区| 秋霞av在线| 日韩av成人在线观看| 免费电影一区二区三区| 日韩中文字幕免费在线| 久久先锋影音av鲁色资源网| 综合网在线观看| 亚洲图片欧美日产| 国产三级一区| 国产av第一区| 国产精品77777| 久久精品无码人妻| 日韩成人av网| 无人区在线高清完整免费版 一区二| 欧美日韩在线高清| 日本在线不卡一区| 男人的午夜天堂| 欧美成人video| 黄色在线观看www| 日韩精品第一页| 国产综合久久久久影院| 精品午夜福利在线观看| 日韩精品日韩在线观看| 国产黄色精品| 日韩中文字幕在线不卡| 97精品国产97久久久久久久久久久久| 久久久久99精品成人片我成大片| 亚洲天堂av综合网| 国产精品一区三区在线观看| 高清欧美精品xxxxx| 久久这里都是精品| 91theporn国产在线观看| 欧美激情精品久久久久久变态| 国产一区丝袜| jizz大全欧美jizzcom| 亚洲一二三四在线| 免费国产在线视频| 91在线观看免费| 国产午夜精品一区二区三区欧美| 天天躁日日躁aaaa视频| 欧美一区二区成人| 国产精品25p| 亚洲成人第一| 成人av资源站| 伊人成人在线观看| 久久久久在线观看| 日韩www.| 国产黑丝一区二区| 欧美日本不卡视频| 国模私拍一区二区国模曼安| 亚洲精品久久久久久一区二区| 国产成a人无v码亚洲福利| 天天爽夜夜爽人人爽| 久久久久国产精品免费| 欧美偷拍自拍| 无码精品一区二区三区在线播放|