精品欧美一区二区三区在线观看 _久久久久国色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ù)棧公眾號

欧美激情aaaa| 色偷偷88欧美精品久久久| 91九色蝌蚪成人| 国产性xxxx高清| 亚洲色图美女| 欧美人妖巨大在线| 久久国产精品网| 六十路在线观看| 久88久久88久久久| 韩国一区二区电影| 五月天免费网站| 成人高潮a毛片免费观看网站| 日韩欧美在线字幕| 久久久久久久久网| 风间由美一区| 成人性生交大片免费看中文| 日韩免费高清在线观看| 成年人av电影| 青青一区二区| 日韩一卡二卡三卡四卡| av视屏在线播放| 欧美大片黄色| 国产精品国产精品国产专区不片| 国产精品久久久久久久久久久久冷 | 日本在线不卡视频一二三区| 日韩中文在线观看| av网站免费在线播放| 999久久久国产999久久久| 欧美午夜无遮挡| 久久亚洲国产成人精品无码区| 精品电影在线| 99久久99久久综合| av激情久久| 国产又大又长又粗| 久久精品一区| 午夜精品国产精品大乳美女| 欧美成人片在线观看| 久久99久久人婷婷精品综合| 欧美videos中文字幕| 天天综合天天添夜夜添狠狠添| 国产资源在线观看入口av| 一区二区三区久久| 在线不卡视频一区二区| wwwww在线观看免费视频| 91小视频免费看| 国产精品欧美久久| 亚洲欧美激情在线观看| 国产乱子伦视频一区二区三区| 国产精品久久久av| 无码人妻精品一区二区| 久久久久国内| 国产不卡精品视男人的天堂| 五月天婷婷久久| 中文高清一区| 性欧美激情精品| 懂色av.com| 日韩午夜电影| 欧美夜福利tv在线| 国产精彩视频在线观看| 海角社区69精品视频| 成年无码av片在线| 久久久精品视频免费观看| 中文字幕一区二区三区欧美日韩 | 国产伦精品一区二区三区免费迷 | 国产在线视频91| 中文字幕一区二区三区波野结 | 午夜日韩在线电影| 精品无码国模私拍视频| 蜜桃av.网站在线观看| 精品久久久视频| 虎白女粉嫩尤物福利视频| 97成人资源| 欧美三区在线视频| 又黄又爽又色的视频| 日韩欧美一级| 精品国产乱码久久久久久老虎| 秘密基地免费观看完整版中文 | youjizz亚洲| 亚洲精品二三区| 超碰97在线资源站| 国产亚洲欧美日韩在线观看一区二区| 亚洲欧洲av一区二区| 免费看黄色三级| 亚洲国产精品综合久久久 | 中文天堂在线视频| 日韩中文一区| 亚洲国产精品人人爽夜夜爽| 偷拍一区二区三区| 欧美二区三区| a天堂中文在线| 中文字幕佐山爱一区二区免费| 亚洲精品偷拍视频| 91视频网页| 欧美性xxxx极品hd欧美风情| 亚洲欧美网站在线观看| 黑人精品一区| 黄色av一区二区三区| wwwww黄色| 成人小视频在线看| 四虎永久国产精品| 欧美精品一二区| 亚洲自拍另类欧美丝袜| 国产日韩在线观看一区| 成人性生交大片免费看中文网站| 久久亚裔精品欧美| 黄色网在线免费观看| 午夜久久电影网| 国产wwwxx| 成人18夜夜网深夜福利网| 伊人久久精品视频| 国产一级特黄毛片| 久久99精品国产91久久来源| 久久av一区二区三区亚洲| 免费黄色网址在线观看| 欧美日韩一区二区精品| 天堂网在线免费观看| 林ゆな中文字幕一区二区| 久久精品99久久香蕉国产色戒| 久草视频免费在线播放| 麻豆精品视频在线观看免费| 国内精品视频在线播放| 毛片网站在线免费观看| 91福利视频网站| 亚洲天堂av网站| 一本到12不卡视频在线dvd| 国产aaa精品| 日韩一级在线播放| 亚洲美女免费视频| 国产a级片免费观看| 精品国产一区二区三区不卡蜜臂 | 亚洲色图插插| 国产精品高清免费在线观看| 天天干天天草天天射| 亚洲卡通动漫在线| 国产女同无遮挡互慰高潮91| 精品国产一区二区三区四区| 不卡一区综合视频| 一本大道亚洲视频| 天堂网免费视频| 91色乱码一区二区三区| 国产欧美日韩小视频| 国产一区二区三区免费观看在线| 中文字幕无线精品亚洲乱码一区| 欧美超碰在线观看| 久久综合网色—综合色88| 国产精品网站免费| 国产精品45p| 久久久久久久网站| 丰满肥臀噗嗤啊x99av| 一区二区三区日韩| 亚洲精品成人无码毛片| 午夜激情一区| 不卡一区二区三区视频| 在线电影福利片| 精品国产髙清在线看国产毛片| 亚洲国产美女视频| 极品尤物av久久免费看| 91社在线播放| 日本一区二区三区电影免费观看| 欧美成人国产va精品日本一级| 国产人妖一区二区三区| 一区二区三区在线免费观看 | 99久久久国产精品| 欧美成人xxxxx| 国产欧美一区二区精品久久久| 国产国语videosex另类| www日韩tube| 在线播放亚洲一区| 久久精品www| 91在线视频播放| 久久久久国产精品熟女影院| 日本大胆欧美| 7777精品伊久久久大香线蕉语言| 女人天堂av在线播放| 日韩av资源在线播放| 狠狠人妻久久久久久综合| 欧美韩国日本综合| 亚洲欧美一区二区三区不卡| 亚洲网站在线| 日韩经典在线视频| 国产精品一区免费在线| 欧美激情2020午夜免费观看| 色就是色亚洲色图| 欧美日韩一卡二卡| 精品无码黑人又粗又大又长| 久久色在线观看| 国产美女视频免费看| 亚洲视频精品| 亚洲精品成人自拍| 我要色综合中文字幕| 欧美一区二区三区精品电影| 在线免费黄色| 亚洲电影在线观看| 中文字幕在线日亚洲9| 亚洲永久精品大片| 91在线无精精品白丝| 粉嫩高潮美女一区二区三区| 狠狠操精品视频| 午夜日韩激情| 色噜噜一区二区| 超碰97久久国产精品牛牛| 国产精品久久久999| 丁香高清在线观看完整电影视频 | h片在线观看下载| 一区二区三区视频免费在线观看| 成人高潮片免费视频| 在线看国产一区二区| 久久精品一区二区三| 日本一区免费视频| 白嫩情侣偷拍呻吟刺激| 精品一区二区三区在线播放视频 | 日韩精品视频在线免费观看| 91资源在线视频| 色婷婷综合久久久| 日本熟妇毛耸耸xxxxxx| 亚洲特级片在线| 中文字幕成人动漫| 91丨九色丨蝌蚪富婆spa| 波多野结衣中文字幕在线播放| 久久久人人人| av在线播放亚洲| 亚洲特色特黄| 成人av在线播放观看| 五月激情综合| 性高潮久久久久久久久| 欧亚精品一区| 国产精品一 二 三| 中文字幕亚洲在线观看 | 老汉色老汉首页av亚洲| 91成人免费在线观看| 四虎影视国产精品| 国产精品美女久久久免费| 成人影院入口| 欧美亚洲在线视频| 小草在线视频免费播放| 91国产精品91| 看黄在线观看| 91sao在线观看国产| 超碰中文在线| 午夜精品久久久久久久久久久久久| 18在线观看的| 久久99热精品| 欧美videos另类精品| 欧美成人午夜免费视在线看片| 黄网站免费在线播放| 久久精品国产一区二区三区| 免费在线观看黄色| 久久天天躁狠狠躁夜夜躁2014 | 国产精品乱码妇女bbbb| 日本一二三不卡视频| 欧美激情自拍偷拍| 亚洲一二三四视频| 美女av一区| 成人字幕网zmw| 成人豆花视频| 91传媒在线免费观看| 日韩综合一区二区三区| 99在线观看| 国产精品午夜av| 国产精品一 二 三| 亚洲人和日本人hd| 亚洲7777| 综合精品一区| 欧美黑人经典片免费观看| 亚洲欧美日韩国产一区二区| 漂亮人妻被中出中文字幕| 久久精品女人| 男生操女生视频在线观看 | 欧美性色aⅴ视频一区日韩精品| 欧美成人一区二区三区四区| 欧美亚洲动漫另类| 国产精品视频在线观看免费 | 成人美女av在线直播| 日韩视频一二区| 精品国产综合| 日本黄色精品| 国产精品三级一区二区| 久久精选视频| 九九九九九九九九| 99精品在线免费| 99自拍偷拍视频| 午夜视黄欧洲亚洲| 中文字幕欧美人妻精品一区蜜臀| 欧美一级片免费看| 桃花色综合影院| 在线成人免费网站| 欧美xxxx性xxxxx高清| 日韩av片电影专区| 日本精品在线观看| 麻豆av一区| 一区二区三区毛片免费| 99热成人精品热久久66| 极品少妇xxxx精品少妇| 国产又粗又猛又色| 国产精品国产三级国产aⅴ入口 | 亚洲一区二区精品在线观看| 欧美精品福利| 天堂中文视频在线| fc2成人免费人成在线观看播放| 一级片久久久久| 亚洲国产欧美日韩另类综合| 中文字幕一区二区三区波野结| 精品免费国产二区三区| 91最新在线| 91成人免费观看网站| 国产精品国产亚洲精品| 欧洲av一区| 亚洲国产精品第一区二区三区| 国产视频1区2区3区| 99久久精品免费看国产免费软件| 麻豆视频免费在线播放| 欧美性xxxx极品hd满灌| 亚洲av综合色区无码一区爱av | 中文字幕影音先锋| 欧美在线综合视频| 亚洲欧洲综合在线| 欧美国产亚洲视频| 国产在线视频欧美一区| 涩涩日韩在线| 久久精品亚洲| 久久一区二区电影| 亚洲一区二区综合| 国产探花精品一区二区| 在线看欧美日韩| 综合毛片免费视频| 精品国产一区二区三区麻豆小说 | 性欧美lx╳lx╳| 久久精品无码中文字幕| 国产精品一区免费在线观看| 91导航在线观看| 91极品视觉盛宴| 清纯唯美亚洲色图| 91av网站在线播放| 日本亚洲不卡| 日本a在线免费观看| 风间由美一区二区三区在线观看| 欧美另类videoxo高潮| 欧美久久久久久久久| 亚洲麻豆精品| 国产综合久久久久| 999精品色在线播放| 中文字幕在线综合| 国产精品久久久久影院亚瑟| 一区二区小视频| 久久精品久久久久久| 国产精品久久久久久久久久辛辛 | 在线视频第一页| 欧美午夜在线一二页| www日韩tube| 成人av在线亚洲| 亚洲欧美色图| 在线播放av网址| 午夜激情久久久| 欧洲一区av| 国产精品久久网| 91一区二区| 在线观看欧美一区二区| 亚洲地区一二三色| 天天操天天射天天舔| 97精品在线视频| 亚洲电影男人天堂| 黄色三级视频在线| 亚洲欧美综合在线精品| 国产福利第一视频| 国内精久久久久久久久久人| 欧美自拍一区| 五月婷婷激情久久| 亚洲欧美日韩一区二区三区在线观看| 国产高清免费观看| 91精品国产91久久久久久久久| 午夜精品福利影院| 亚欧美在线观看| 亚洲欧美日韩久久| 色香蕉在线视频| 国产精品6699| 中国成人一区| 中文字幕av观看| 欧美午夜精品免费| 丝袜美女在线观看| 欧美日韩国产精品一卡| 蜜桃精品视频在线| 麻豆chinese极品少妇| 亚洲美女福利视频网站| 24小时成人在线视频| 男人天堂a在线| 国产精品丝袜久久久久久app| 国产99视频在线| 欧美又大又粗又长| 婷婷亚洲综合| jlzzjizz在线播放观看| 欧美日韩日日夜夜| 成av人片在线观看www| 亚洲美女网站18| fc2成人免费人成在线观看播放| 欧美激情一区二区三区免费观看| 欧美日产国产成人免费图片| 国产成人影院| 中文字幕人妻一区| 欧美日产国产精品| 麻豆视频在线看|