久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

詳解vue高級特性

瀏覽:106日期:2023-01-14 14:14:40

Vue為我們提供了很多高級特性,學習和掌握它們有助于提高你的代碼水平。

一、watch進階

從我們剛開始學習Vue的時候,對于偵聽屬性,都是簡單地如下面一般使用:

watch:{a(){ //doSomething}}

實際上,Vue對watch提供了很多進階用法。

handler函數(shù)

以對象和handler函數(shù)的方式來定義一個監(jiān)聽屬性,handler就是處理監(jiān)聽變動時的函數(shù):

watch:{a:{handler:’doSomething’}},methods:{doSomething(){//當 a 發(fā)生變化的時候,做些處理}}

handler有啥用?是多此一舉么?用途主要有兩點:

1 將處理邏輯抽象出去了,以method的方式被復用

2 給定義下面兩個重要屬性留出了編寫位置

deep屬性

不知道你注意到了沒有?

當watch的是一個Object類型的數(shù)據(jù),如果這個對象內(nèi)部的某個值發(fā)生了改變,并不會觸發(fā)watch動作!

也就是說,watch默認情況下,不監(jiān)測內(nèi)部嵌套數(shù)據(jù)的變動。但是很多情況下,我們是需要監(jiān)測的!

為解決這一問題,就要使用deep屬性:

watch:{obj:{handler:’doSomething’,deep:true}},methods:{doSomething(){//當 obj 發(fā)生變化的時候,做些處理}}

deep屬性默認為false,也就是我們常用的watch模式。

immediate屬性

watch 的handler函數(shù)通常情況下只有在監(jiān)聽的屬性發(fā)生改變時才會觸發(fā)。

但有些時候,我們希望在組件創(chuàng)建后,或者說watch被聲明和綁定的時候,立刻執(zhí)行一次handler函數(shù),這就需要使用immediate屬性了,它默認為false,改為true后,就會立刻執(zhí)行handler。

watch:{obj:{handler:’doSomething’,deep:true,immediate:true}},methods:{doSomething(){//當 obj 發(fā)生變化的時候,做些處理}}

同時執(zhí)行多個方法

使用數(shù)組可以設置多項,形式包括字符串、函數(shù)、對象

watch: { // 你可以傳入回調(diào)數(shù)組,它們會被逐一調(diào)用 a: [ ’handle1’, function handle2 (val, oldVal) { /* ... */ }, { handler: function handle3 (val, oldVal) { /* ... */ }, /* ... */ } ], }

二、$event的不同表現(xiàn)

$event 是事件對象的特殊變量,在兩種場景下,它有不同的意義,代表不同的對象。

1 在原生事件中表示事件本身。可以通過$event.target獲得事件所在的DOM對象,再通過value進一步獲取具體的值。

<template> <div> <input type='text' @input='inputHandler(’hello’, $event)' /> </div></template>export default { methods: { inputHandler(msg, e) { console.log(e.target.value) } }}

2 而在父子組件通過自定義事件進行通信時,表示從子組件中傳遞出來的參數(shù)值

看下面的例子:

//blog-post組件的模板<button v-on:click='$emit(’enlarge-text’, 0.1)'> Enlarge text</button>

在父級組件監(jiān)聽這個事件的時候,可以通過 $event 訪問到blog-post子組件傳遞出來的0.1這個值:

<blog-post ... v-on:enlarge-text='postFontSize += $event'></blog-post>

此時,$event的值就是0.1,而不是前面的事件對象。

三、異步更新隊列

1 Vue 在更新 DOM 時是異步執(zhí)行的。

2 只要偵聽到數(shù)據(jù)變化,Vue 將開啟一個隊列,并緩沖在同一事件循環(huán)中發(fā)生的所有數(shù)據(jù)變更。

3 如果同一個 watcher 被多次觸發(fā),只會被推入到隊列中一次。

這種在緩沖時去除重復數(shù)據(jù)對于避免不必要的計算和 DOM 操作是非常重要的。然后,在下一個的事件循環(huán)“tick”中,Vue 刷新隊列并執(zhí)行實際 (已去重的) 工作。Vue 在內(nèi)部對異步隊列嘗試使用原生的 Promise.then、MutationObserver 和 setImmediate,如果執(zhí)行環(huán)境不支持,則會采用 setTimeout(fn, 0) 代替。

例如,當你設置 vm.someData = ’new value’,該組件不會立即重新渲染。當刷新隊列時,組件會在下一個事件循環(huán)“tick”中更新。

多數(shù)情況我們不需要關心這個過程,但是如果你想基于更新后的 DOM 狀態(tài)來做點什么,這就可能會有些棘手。

雖然 Vue.js 通常鼓勵開發(fā)人員使用“數(shù)據(jù)驅(qū)動”的方式思考,避免直接接觸 DOM,但是有時我們必須要這么做。為了在數(shù)據(jù)變化之后等待 Vue 完成更新 DOM,可以在數(shù)據(jù)變化之后立即使用 Vue.nextTick(callback)。

這樣回調(diào)函數(shù)將在 DOM 更新完成后被調(diào)用。例如:

<div id='example'>{{message}}</div>var vm = new Vue({ el: ’#example’, data: { message: ’123’ }})vm.message = ’new message’ // 更改數(shù)據(jù)vm.$el.textContent === ’new message’ // falseVue.nextTick(function () { vm.$el.textContent === ’new message’ // true})

在組件內(nèi)使用 vm.$nextTick() 實例方法特別方便,因為它不需要全局 Vue,并且回調(diào)函數(shù)中的 this 將自動綁定到當前的 Vue 實例上:

因為 $nextTick() 返回一個 Promise 對象,所以你可以使用新的 ES2017 async/await 語法完成相同的事情:

methods: { updateMessage: async function () { this.message = ’已更新’ //在這里可以看出,message并沒有立刻被執(zhí)行 //要理解頁面刷新和代碼執(zhí)行速度的差別 //通常我們在頁面上立刻就能看到結(jié)果,那是因為一輪隊列執(zhí)行其實很快,感覺不出DOM刷新的過程和所耗費的時間 //但對于代碼的執(zhí)行,屬于即刻級別,DOM沒更新就是沒更新,就是會有問題 console.log(this.$el.textContent) // => ’未更新’ await this.$nextTick() console.log(this.$el.textContent) // => ’已更新’ }}

通俗的解釋:

1 Vue的DOM刷新機制是個異步隊列,并不是你想象中的立刻、馬上、即時更新!

2 這個異步隊列是一輪一輪的執(zhí)行并刷新

3 上面帶來的問題是,一些依賴DOM更新完畢才能進行的操作(比如對新增加的DOM元素進行事件綁定),無法立刻執(zhí)行,必須等待一輪隊列執(zhí)行完畢

4 最容易碰到上面問題的地方:created生命周期鉤子函數(shù)中對DOM進行操作

5 解決辦法:使用this.nextTick(回調(diào)函數(shù))方法,將對DOM的操作作為它的回調(diào)函數(shù)使用。

四、函數(shù)式組件

因為傳統(tǒng)編寫模板的能力不足,我們引入了渲染函數(shù)createElement。我們又希望獲得更多的靈活度,于是引入了JSX。最后,我們發(fā)現(xiàn)有些簡單的模板可以更簡單更小巧的實現(xiàn),于是引入了函數(shù)式組件。Vue總是試圖為每一種場景提供不同的能力。

有這么一類組件,它的特點是:

1 比較簡單

2 沒有管理任何狀態(tài),也就是說無狀態(tài),沒有響應式數(shù)據(jù)

3 沒有監(jiān)聽任何傳遞給它的狀態(tài)

4 沒有寫生命周期方法

5 本質(zhì)上只是一個接收一些prop的函數(shù)

6 沒有實例,沒有this上下文

那么這個組件可以定義為函數(shù)式組件。與普通組件相比,函數(shù)式組件是無狀態(tài)的,無法實例化,沒有任何的生命周期和方法,適合只依賴于外部數(shù)據(jù)的變化而變化的組件,因其輕量,渲染性能會有所提高。

創(chuàng)建函數(shù)式組件

以定義全局組件的方式

Vue.component(’my-component’, { functional: true, // Props 是可選的 props: { // ... }, // 為了彌補缺少的實例 // 提供第二個參數(shù)作為上下文 render: function (createElement, context) { // ... }})

注意其中的functional: true,

在 Vue 2.3.0 或以上的版本中,你可以省略 props 選項,所有組件上的 attribute 都會被自動隱式解析為 prop。

當使用函數(shù)式組件時,該引用將會是 HTMLElement,因為他們是無狀態(tài)的也是無實例的。

對于單文件組件,創(chuàng)建函數(shù)式組件的方式是在模板標簽內(nèi),添加functional屬性

<template functional>...</template><script>...</script><style>...</style>

最重要的context參數(shù)

因為無狀態(tài),沒有this上下文,所以函數(shù)式組件需要的一切都是通過 context 參數(shù)來傳遞,它是一個包括如下字段的對象:

props:提供所有 prop 的對象

children:VNode 子節(jié)點的數(shù)組

slots:一個函數(shù),返回了包含所有插槽的對象

scopedSlots:(2.6.0+) 一個暴露傳入的作用域插槽的對象。也以函數(shù)形式暴露普通插槽。

data:傳遞給組件的整個數(shù)據(jù)對象,作為 createElement 的第二個參數(shù)傳入組件

parent:對父組件的引用

listeners:(2.3.0+) 一個包含了所有父組件為當前組件注冊的事件監(jiān)聽器的對象。這是 data.on 的一個別名。

injections:(2.3.0+) 如果使用了 inject 選項,則該對象包含了應當被注入的 property。

應用場景

函數(shù)式組件的一個典型應用場景是作為包裝組件,比如當你碰到下面需求時:

程序化地在多個組件中選擇一個來代為渲染;

在將 children、props、data 傳遞給子組件之前操作它們。

下面是一個 smart-list 組件的例子,它能根據(jù)傳入 prop 的值來代為渲染更具體的組件:

var EmptyList = { /* ... */ }var TableList = { /* ... */ }var OrderedList = { /* ... */ }var UnorderedList = { /* ... */ }Vue.component(’smart-list’, { functional: true, props: { items: { type: Array, required: true }, isOrdered: Boolean }, render: function (createElement, context) { function appropriateListComponent () { var items = context.props.items if (items.length === 0) return EmptyList if (typeof items[0] === ’object’) return TableList if (context.props.isOrdered) return OrderedList return UnorderedList } return createElement( appropriateListComponent(), context.data, context.children ) }})

五、監(jiān)聽子組件的生命周期

假如我們有父組件Parent和子組件Child,如果在父組件中需要監(jiān)聽子組件的mounted這個生命周期函數(shù),并做一些邏輯處理,常規(guī)寫法可能如下:

// Parent.vue<Child @mounted='doSth' />//Child.vuemounted(){ this.$emit(’mounted’);}

但是,Vue給我們提供了一種更簡便的方法,子組件無需做任何處理,只需要在父組件引用子組件時使用@hook事件來監(jiān)聽即可,代碼如下:

// Parent.vue<Child @hook:mounted='doSth' /> methods:{ doSth(){ //some codes here }}

核心是@hook:mounted='doSth'的寫法!

當然這里不僅僅可以監(jiān)聽mounted,其他生命周期都可以監(jiān)聽,例如created、updated等。

六、樣式穿透

我們知道,在單文件組件的style中使用 scoped 屬性后,父組件的樣式將不會滲透到子組件中。

不過一個子組件的根節(jié)點會同時受其父組件的 scoped CSS 和子組件的 scoped CSS 的影響。這樣設計是為了讓父組件可以從布局的角度出發(fā),調(diào)整其子組件根元素的樣式。

如果你希望父組件的 scoped 樣式中的一個選擇器能夠作用得“更深”,例如影響子組件,可以使用深度選擇器: >>> 操作符。

<style scoped>.a >>> .b { /* ... */ }</style>

上述代碼將會編譯成:

.a[data-v-f3f3eg9] .b { /* ... */ }

但是,有些像 Sass 之類的預處理器無法正確解析 >>>。這種情況下你可以使用 /deep/ 或 ::v-deep 操作符,這兩者都是 >>> 的別名,實現(xiàn)同樣的功能。

我們都知道,通過 v-html 創(chuàng)建的 DOM 內(nèi)容不受 scoped 樣式影響,可以通過深度作用選擇器>>>來為他們設置樣式。

七、路由的props屬性

一般在組件內(nèi)使用路由參數(shù),大多數(shù)人會這樣做:

export default { methods: { getParamsId() { return this.$route.params.id } }}

當你隨便用用,臨時湊手,這沒什么問題,畢竟解決了需求。

可我們要隨時謹記:組件是用來復用的!組件應該有高度的封閉性!

在組件中使用 $route 會使它與路由系統(tǒng)形成高度耦合,從而使組件只能在使用了路由功能的項目內(nèi),或某些特定的 URL 上使用,限制了其靈活性。

試想一下,如果你的組件被人拿去復用了,但是那個人并沒有使用路由系統(tǒng),而是通過別的方式傳遞id參數(shù),那么他該怎么辦?

正確的做法是通過 props 解耦!

首先,為組件定義一個叫做id的prop:

export default { props: [’id’], methods: { getParamsId() { return this.id } }}

如果組件沒有對應路由,那么這個id也可以通過父組件向子組件傳值的方式使用。

如果使用了路由,可以通過路由的prop屬性,傳遞id的值:

const router = new VueRouter({ routes: [{ path: ’/user/:id’, component: User, props: true }]})

將路由的 props 屬性設置為 true 后,組件內(nèi)可通過 props 接收到 params 參數(shù)

另外,你還可以通過函數(shù)模式來返回 props

const router = new VueRouter({ routes: [{ path: ’/user/:id’, component: User, props: (route) => ({ id: route.query.id }) }]})

其實,上面的技巧,在VueRouter的官檔都有說明。

八、異步組件

在大型應用中,我們可能需要將應用分割成小一些的代碼塊,并且只在需要的時候才從服務器加載一個模塊。

為了簡化,Vue 允許你以一個工廠函數(shù)的方式定義你的組件,這個工廠函數(shù)會異步解析你的組件定義。Vue 只有在這個組件需要被渲染的時候才會觸發(fā)該工廠函數(shù),且會把結(jié)果緩存起來供未來重渲染。例如:

Vue.component(’async-example’, function (resolve, reject) { setTimeout(function () { // 向 `resolve` 回調(diào)傳遞組件定義 resolve({ template: ’<div>I am async!</div>’ }) }, 1000)})

如你所見,這個工廠函數(shù)會收到一個 resolve 回調(diào),這個回調(diào)函數(shù)會在你從服務器得到組件定義的時候被調(diào)用。

你也可以調(diào)用 reject(reason) 來表示加載失敗。這里的 setTimeout 是為了演示用的,如何獲取組件取決于你自己。

一個推薦的做法是將異步組件和 webpack 的 code-splitting 功能一起配合使用:

Vue.component(’async-webpack-example’, function (resolve) { // 這個特殊的 `require` 語法將會告訴 webpack // 自動將你的構(gòu)建代碼切割成多個包,這些包 // 會通過 Ajax 請求加載 require([’./my-async-component’], resolve)})

你也可以在工廠函數(shù)中返回一個 Promise,所以把 webpack 2 和 ES2015 語法加在一起,我們可以寫成這樣:

Vue.component( ’async-webpack-example’, // 這個 `import` 函數(shù)會返回一個 `Promise` 對象。 () => import(’./my-async-component’))

當使用局部注冊組件的時候,你也可以直接提供一個返回 Promise 的函數(shù):

new Vue({ // ... components: { ’my-component’: () => import(’./my-async-component’) }})

如果你想實現(xiàn)異步加載組件的功能,提高首屏顯示速度,那么可以使用上面例子中的定義組件的方法,也就是:箭頭函數(shù)+import語句!

處理加載狀態(tài)

2.3.0+ 新增

異步組件的工廠函數(shù)也可以返回一個如下格式的對象,用來靈活定制異步加載過程:

const AsyncComponent = () => ({ // 需要加載的組件 (應該是一個 `Promise` 對象) component: import(’./MyComponent.vue’), // 異步組件加載時使用的組件 loading: LoadingComponent, // 加載失敗時使用的組件 error: ErrorComponent, // 展示加載時組件的延時時間。默認值是 200 (毫秒) delay: 200, // 如果提供了超時時間且組件加載也超時了, // 則使用加載失敗時使用的組件。默認值是:`Infinity` timeout: 3000})

注意如果你希望在 Vue Router 的路由組件中使用上述語法的話,必須使用 Vue Router 2.4.0+ 版本。

九、批量導入組件

很多時候我們會編寫一些類似輸入框或按鈕之類的基礎組件,它們是相對通用的組件,稱為基礎組件,它們會在更大一些的組件中被頻繁的用到。

這很容易導致大的組件里有一個很長的導入基礎組件的語句列表,例如:

import BaseButton from ’./BaseButton.vue’import BaseIcon from ’./BaseIcon.vue’import BaseInput from ’./BaseInput.vue’//更多導入export default { components: { BaseButton, BaseIcon, BaseInput }}

當你的基礎組件很多的時候,這個過程將非常重復、麻煩和無聊。

require.context()

如果你恰好使用了 webpack (或在內(nèi)部使用了 webpack 的 Vue CLI 3+),那么就可以使用 require.context 方法批量導入這些組件,然后將它們注冊為全局組件,這樣就可以在任何地方直接使用它們了,再也不用為導入的事情煩惱了!

下面是一個示例代碼:

import Vue from ’vue’import upperFirst from ’lodash/upperFirst’import camelCase from ’lodash/camelCase’const requireComponent = require.context( // 其組件目錄的相對路徑 ’./components’, // 是否查詢其子目錄 false, // 匹配基礎組件文件名的正則表達式 /Base[A-Z]w+.(vue|js)$/)requireComponent.keys().forEach(fileName => { // 獲取組件的配置,也就是具體內(nèi)容,具體定義,組件的本身代碼 const componentConfig = requireComponent(fileName) // 獲取組件的 PascalCase 命名,用來規(guī)范化組件名 const componentName = upperFirst( camelCase( // 獲取和目錄深度無關的文件名 fileName .split(’/’) .pop() .replace(/.w+$/, ’’) ) ) // 全局注冊組件 Vue.component( componentName, // 如果這個組件選項是通過 `export default` 導出的, // 那么就會優(yōu)先使用 `.default`, // 否則回退到使用模塊的根。 componentConfig.default || componentConfig )})

以上就是詳解vue高級特性的詳細內(nèi)容,更多關于vue高級特性的資料請關注好吧啦網(wǎng)其它相關文章!

標簽: Vue
相關文章:
主站蜘蛛池模板: 国产精品成人3p一区二区三区 | 黄色一级片免费播放 | 天堂在线中文字幕 | 久久免费精品视频 | 中文字幕一区二区三区乱码图片 | 欧美一区二区三区 | 久久久久久a女人 | 思九九爱九九 | 91在线免费看 | 日韩中字在线观看 | 福利亚洲 | 国产精品久久久久免费a∨ 欧洲精品一区 | 国产成人精品亚洲777人妖 | 自拍视频免费 | 精品久久久久一区二区三区 | 亚洲美乳中文字幕 | 欧美日韩国产一区二区三区 | 激情久久久久 | 一区二区三区影院 | 国产一区二区三区免费视频 | www.日韩三级 | 亚洲欧美国产一区二区 | 久久蜜桃精品一区二区三区综合网 | 成人不卡在线 | 欧美综合成人网 | 亚洲人成人一区二区在线观看 | 老司机深夜福利视频 | 久久大陆 | 日本欧美在线 | 日韩国产欧美一区 | 人人澡人人射 | 欧美激情在线播放 | 99国产精品99久久久久久 | 国产一区二区电影 | 欧美自拍视频 | 国产97在线播放 | 亚洲国产精品久久 | 爱爱视频在线观看 | 精品久久99 | 国产精品久久久久aaaa九色 | 国产精品视频一区二区三区 | 麻豆.蜜桃.91.天美入口 | 欧美一区二区三区免费 | 激情久久久久 | 欧美日韩久久 | 久久久国产精品 | 国产一区在线视频 | 亚洲精品久久久久久一区二区 | 国产成人精品一区二区三区视频 | 欧美国产精品一区 | 色婷婷综合在线 | av激情在线 | 欧美一区二区三区在线观看视频 | 91av国产在线视频 | 99热热热热 | 午夜看片在线观看 | 中文av网站 | 久热av中文字幕 | 91人人澡人人爽 | 日韩欧美国产精品 | 久久久国产精品视频 | 国产三级视频 | 久久精品久久久 | 日韩精品www| 欧美日韩高清 | 欧美精品黄 | 欧美视频免费在线 | 国产精品视频999 | 美女视频黄的免费 | 国产精品三级久久久久久电影 | 久久国产一区二区 | 伊人伊人 | 亚洲二区在线观看 | 偷拍呻吟高潮91 | 免费黄色网止 | 日本高清视频在线播放 | 亚洲小视频 | 91中文在线观看 | 午夜免费剧场 | 欧美6一10sex性hd | 中文字幕欧美在线 | 久久国产精品视频观看 | 中文字幕一区二区三区乱码图片 | 色婷婷av一区二区三区大白胸 | 伊人久久艹 | 九九热精品免费视频 | 国产精品色在线网站 | 在线视频中文字幕 | 在线手机电影 | wwwjizz日本| 欧美一级视频在线观看 | 一区二区三区av | 欧洲美女性开放视频 | 亚洲精品乱码8久久久久久日本 | 国产欧美精品区一区二区三区 | 亚洲国产午夜 | 中文字幕在线观看免费 | 久草精品在线 | 色五月激情五月 | 麻豆自拍偷拍 | 一区二区电影 | 欧美日韩精品免费观看视频 | 欧美日韩一区不卡 | 亚洲成人第一 | 欧美激情一区二区 | 精品国产一区二区在线 | 日本精品在线观看 | 国产色婷婷| 九九热在线免费视频 | 欧美国产日韩在线观看 | 美日韩一区二区 | 日韩视频中文字幕 | 91大神在线看 | 欧美日韩精品久久久 | 亚洲精品自在在线观看 | 久久精品国产99国产精品 | 久久久成人av | 欧美日韩精品在线观看 | 久久久男人天堂 | 91精品国产综合久久久久久 | 国产精品美女视频免费观看软件 | 91福利电影在线观看 | 国产老女人精品毛片久久 | 成人h动漫精品一区二区器材 | 中文字幕在线一区 | 蜜臀av在线播放一区二区三区 | 日韩午夜在线 | 激情的网站| 久久伊人在 | 一区二区三区四区在线播放 | 羞羞av在线 | 日韩专区中文字幕 | 人妖 丝袜 另类 亚洲 | 成人亚洲免费视频 | 精品96久久久久久中文字幕无 | 国产精品久久久久久亚洲调教 | 美女视频黄的免费 | 国产精品久久久久久吹潮 | 欧美中文| 国产免费一区二区 | 亚洲精品一 | 另类国产ts人妖高潮系列视频 | 日韩激情视频一区二区 | 久久中文字幕视频 | 二区国产 | 成人影视网 | 自拍视频在线观看 | 日本超碰在线 | 亚洲综合精品 | 欧美人体一区二区三区 | avmans最新导航地址 | 国产精品成人一区二区 | 国产精品99久久久久久大便 | 6080亚洲精品一区二区 | 性一交一乱一透一a级 | 在线一区二区三区 | 国产一区精品在线 | 精品欧美日韩 | 五月激情综合网 | 五月综合婷 | www九九热| 免费亚洲一区二区 | 久久国产视频精品 | 在线免费黄色 | 91亚洲免费视频 | 婷婷色综合 | 欧美精品一区二区在线观看 | 精品久久久久久久人人人人传媒 | 午夜精品视频 | 91免费在线播放 | 中文字幕视频在线 | 欧美精品成人一区二区三区四区 | 精品毛片 | 2019中文字幕在线观看 | 日韩精品99久久久久中文字幕 | 国产精品国产三级国产aⅴ中文 | 天堂色网 | 亚洲毛片网站 | 亚洲成人在线网站 | 91在线看片| 91大神免费观看 | 亚洲视频在线免费观看 | 日韩在线视频中文字幕 | 免费在线看a | 91精品一区 | 国产一区二区三区精品久久久 | 狠狠干av | 成人av播放 | 精品久久久久久久久久久久久 | 午夜tv免费观看 | 日韩精品一区在线 | 欧美亚洲视频在线观看 | 中文字幕在线看 | 一级黄视频 | 国产一区二区影院 | 国产免费黄视频 | 黄色国产区 | 久久草视频 | 欧美日韩中文字幕 | 日韩精品一区二区三区中文在线 | 欧美精品国产精品 | 91久久夜色精品国产网站 | 欧美国产在线一区 | 日韩三级电影免费观看 | 在线观看亚洲 | 久久一区 | 99这里只有精品 | 黄视频网站免费观看 | 亚洲一区二区黄 | 天天天操 | 欧美日韩视频 | 神马久久久久久 | 国产日韩精品一区 | 亚洲国产精品第一区二区 | a免费在线 | 日韩手机电影 | 最新av在线网址 | 四虎视频 | 欧美一级片aaa | 日本一区二区三区免费观看 | 大吊一区二区 | 国产在线小视频 | 国产欧美精选 | 国产精品成人免费视频 | 一级篇 | 国产精品一区二区不卡 | 成人在线观看网 | 欧美一区二区三区精品 | 男女黄网站 | 久热精品视频 | 亚洲日本乱码一区两区在线观看 | 天堂在线中文字幕 | 在线精品国产 | 国产精品69久久久久水密桃 | 精品成人在线 | 国产91网址 | 国产一区二区三区91 | 成人免毛片 | 亚洲91精品| 午夜电影福利 | 91视频专区 | 日本日韩中文字幕 | 日韩在线一区二区 | 亚洲欧美电影 | 欧美性猛交xxxx黑人猛交 | 国产精品久久久久久久久久东京 | 天天舔天天爽 | 精品国产乱码久久久久久久软件 | 欧美综合一区 | 成人a在线视频免费观看 | 久久福利 | 日韩色在线| 亚洲国产免费 | 在线观看91精品国产入口 | 在线观看免费视频91 | 小川阿佐美88av在线播放 | 中文字幕91视频 | 96自拍视频 | 亚洲 欧美 日韩 在线 | 亚洲精品日韩激情欧美 | 三级视频在线 | 国产午夜精品一区二区三区 | 国产精品国产精品国产专区不片 | 亚州视频在线 | 日韩中文字幕在线 | 欧美中文一区 | 久久精品色欧美aⅴ一区二区 | 91精品视频在线播放 | 欧美日黄 | 在线播放三级 | 久久久亚洲综合 | 久久精品99视频 | 中文字幕视频在线免费 | 亚洲毛片在线观看 | 国产精品视频一区二区三区 | 欧美一级免费大片 | 妞干网国产 | 久久精品欧美一区二区三区不卡 | 精品久久久久久久久久久久久久 | 亚洲精品久久久一区二区三区 | 日韩免费av一区二区 | 欧美亚洲一区 | 亚洲视频在线看 | 日韩精品一区二区在线观看视频 | 国产区最新 | 中文字幕欧美日韩 | 久草国产视频 | 一区二区三区四区在线 | 中文字幕久久综合 | 在线免费黄 | 欧美激情自拍偷拍 | 亚洲一区二区三区四区五区中文 | www久久精品 | 日本天天操 | 欧美精品在线一区二区三区 | 亚洲精品91 | 天堂精品 | www.久久.com | 午夜视频91| 久久精品亚洲精品国产欧美kt∨ | 91麻豆精品国产91久久久久久 | 男女羞羞视频免费看 | 国产精品片aa在线观看 | 国产高清久久 | 天天综合网久久综合网 | 国产高清在线 | av久久| 高清国产午夜精品久久久久久 | 国产精品一区二区久久久久 | 国产精品国产成人国产三级 | 免费观看一级淫片 | 国产 高清 在线 | 国产一级免费 | 欧美精品久久久 | 免费成人在线网站 | 妞干网国产 | 九九热热九九 | 日韩视频精品 | 久久精品手机视频 | 777色狠狠一区二区三区 | 久久精品福利 | 久久国产综合 | 99久久精品免费看国产免费粉嫩 | 欧美激情性国产欧美无遮挡 | 国产精品久久久久久久久久妇女 | 日韩欧美在线中文字幕 | 色婷婷亚洲一区二区三区 | www.久久久久 | 一级毛片免费高清 | 国产一区二区三区四区五区 | 午夜高清视频 | 精品国产一区二区三区性色av | 日韩精品一区在线 | 91视频免费在线看 | 日产精品久久 | 老司机深夜福利在线观看 | 亚洲小视频 | 日本美女一区二区 | 男人久久天堂 | 国产精品久久 | 精品日韩一区二区三区 | 欧美一区二区三区在线观看视频 | 国产高清一区二区 | 精品一区在线 | 午夜影院免费视频 | 免费黄色录像视频 | 一级欧美日韩 | 日本在线免费 | 亚洲福利| 日韩大尺度电影在线观看 | 成人在线精品视频 | 日本不卡视频 | 日韩日b视频 | 欧美激情综合五月色丁香小说 | 亚洲美女网站 | 欧美啊v | 91精品国产一区二区三区蜜臀 | 色吟av| 欧美理伦片在线播放 | 国产午夜精品一区二区 | 国产激情一区二区三区成人免费 | 在线观看成人小视频 | 日韩欧美高清dvd碟片 | 羞羞视频网站在线免费观看 | 免费日韩视频 | 麻豆视频在线 | 欧美亚洲国产一区 | 国产成人精品高清久久 | 在线天堂新版最新版在线8 www.国产欧美 | 国产精品国产三级国产a | 久久三区| 精品久久影院 | 一区二区三区亚洲 | 98精品国产高清在线xxxx天堂 | 亚洲精品一区二区三区蜜桃久 | 不卡的一区二区 | 在线亚洲一区 | 精品一区二区三区三区 | 99国内精品久久久久久久 | 中文字幕精品一区 | 中文字幕在线视频一区 | 国产欧美日韩中文字幕 | 精品在线一区二区三区 | 亚洲国产成人在线观看 | 夫妻午夜影院 | 在线看av网址 | 成人精品二区 | 天天综合网网欲色 | 91视频在线网址 | 蜜臀av在线播放一区二区三区 | 伊人网视频在线 | 视频1区2区 | 日韩中文字幕在线播放 | 91激情视频 | 国产成人精品一区二区三区在线 | 国产精品久久久久9999鸭 | 青娱乐网站 | 99re热精品视频国产免费 | 91久久综合亚洲鲁鲁五月天 | 性xxxxxxxxx18欧美| a视频在线观看 | 欧美三级网 | 久久久久国产精品视频 | 国产精品久久久久久久久久东京 | 中文字幕高清视频 | 狠狠躁夜夜躁人人爽天天高潮 | 欧美成人精品一区二区男人看 | 久草视频在线看 | 欧美另类一二三四 | 国产成人精品亚洲777人妖 | 精品国产一区二区三区久久影院 | 久久久精品国产 | 中文字幕在线看 | 国产精品1 | 黄色av网站在线免费观看 | 久久不卡 | 91精品一区二区 | 超碰最新网址 | 国产77777 | 亚洲欧洲精品视频 | 国产成人综合av | 日韩精品视频在线观看免费 | 精品一区二区视频 | 欧美日韩中文字幕 | 午夜激情在线免费观看 | 91免费影视 | 伊人福利视频 | 亚洲 欧美 日韩在线 | 国产一级片 | 中文字幕日韩欧美一区二区三区 | 日韩综合在线 | 啵啵影院午夜男人免费视频 | 91资源在线 | 国产精品久久久久久婷婷天堂 | 粉嫩高清一区二区三区 | 国产成人综合网 | 在线欧美日韩 | 中文在线一区二区 | 97精品视频在线 | 日韩影院在线 | 韩国精品 | 国产精品美女 | 国产精品www | 亚洲综合婷婷 | 亚洲精品夜夜夜 | 欧美韩国日本一区 | 久久伦理电影 | 国产激情综合五月久久 | 亚洲成人一区 | 中文字幕一区在线观看视频 | 亚洲精选国产 | 国产欧美一区二区三区国产幕精品 | 国产精品永久 | 91精品国产99久久久久久红楼 | 久久精品网 | 国产精品网站在线观看 | 欧美精品在线一区 | 精品一区二区三区在线观看 | 91国产精品 | 精品国产一区二区三区久久久蜜月 | 精品日韩一区 | 99久久国产综合精品女不卡 | 国产精品亚洲精品日韩已方 | 天天操天天摸天天干 | www.久久精品视频 | 精品久久久久久久久福利 | 91视频.com | 亚洲免费在线视频 | 精品亚洲成a人在线观看 | 久久精品无码一区二区三区 | 日韩国产欧美一区 | 午夜寂寞少妇aaa片毛片 | 成人欧美| 精品一区二区久久 | 国产视频自拍一区 | 日本成人一二三区 | 欧美精品在线不卡 | 国产精品一区二区三区在线看 | 久久久精品国产 | 99精品全国免费观看视频软件 | 欧洲成人一区 | 欧美日韩激情一区二区三区 | 日韩电影免费在线观看中文字幕 | 丁香久久 | 国产精品成人在线视频 | 成人精品一区二区三区 | 国产精品久久久久久福利一牛影视 | 特黄级国产片 | 中文字幕日韩一区二区三区 | 一区二区日韩精品 | 四虎影院最新地址 | 国产成人亚洲综合 | 99久久久久国产精品免费 | www.天天草 | 中文字幕三区 | 九九视频在线观看视频6 | 中文字幕日韩欧美 | 中国电影黄色一级片免费观看 | 日韩欧美在线视频 | 99久久夜色精品国产亚洲1000部 | www中文字幕在线观看 | 国产成人精品久久二区二区91 | 国产精品美女视频一区二区三区 | 国产精品毛片 | 91麻豆精品国产91久久久更新时间 | 性色网站| 国产精品久久久久久婷婷天堂 | 亚洲高清一区二区三区 | 欧美激情综合五月色丁香小说 | 成人羞羞网站 | 国产精品成人在线观看 | 国产男人天堂 | 久久久精品一区二区 | 久久久久香蕉视频 | 欧美成人资源 | 91综合视频在线观看 | 亚洲精品字幕 | a级毛片黄| 一级一片免费视频 | 久久久久久久久久久久福利 | 亚洲国产婷婷香蕉久久久久久99 | 蜜臀精品久久久久久蜜臀 | 在线免费观看黄色 | 中文字幕一区二区三区乱码图片 | 色婷婷一区二区三区四区 | 中字精品 | 亚洲八区 | 日韩国产 | 91视频免费播放 | 久久亚洲精品国产精品紫薇 | 国产美女久久久 | 日韩高清中文字幕 | 亚洲精品久久久久久下一站 | 国产精品毛片一区视频播 | 精品一区二区三区免费 | 天天干人人 | 国产精品久久婷婷六月丁香 | 欧美日韩成人在线 | 凹凸日日摸日日碰夜夜爽孕妇 | 欧美精品1区 | 精品久久久久久久 | 国产特级毛片 | 在线精品国产一区二区三区 | 亚洲国产精品自拍 | 一区二区免费在线播放 | 狠狠躁日日躁夜夜躁东南亚 | 亚洲精品久久久久久久久久久久久 | 99re在线| 中文字幕视频免费观看 | 99精品欧美一区二区三区综合在线 | 黄视频免费在线 | 中文字幕在线观看一区二区三区 | 日本在线观看视频一区 | aaaaaa黄色片| 伊人春色成人 | 九九精品免费视频 | 国产成人精品一区二区三区视频 | 视频一区在线播放 | 国产精品久久久久久av公交车 | 精品久久久久久亚洲精品 | 狠狠av| 亚洲成人观看 | 老司机狠狠爱 | 人人草在线观看视频 | 日韩成人一区二区 | 黄毛片网站 | 国产97人人超碰caoprom | 亚洲成av人片一区二区梦乃 | 国产精品久久九九 | 依人成人网 | 亚洲国产精品久久久 | 在线视频成人 | 密色视频 | 日韩在线免费视频 | 欧美成人激情视频 | 欧美一级内谢 | 国产亚洲一区二区三区在线观看 | 亚洲国产一区二 | 在线观看精品自拍私拍 | 亚洲毛片在线观看 | 午夜av影院| 日韩成人免费av | 欧美日韩欧美日韩 | 午夜大片网| 狠狠综合久久av一区二区小说 | 看亚洲a级一级毛片 | 日日摸夜夜添夜夜添高潮视频 | 成人a在线观看 | 国产综合精品 | 美女在线视频一区二区 | 日韩啊啊啊 | 日韩av成人 | 日韩一区二区三区四区五区 | 亚洲一区免费视频 | 欧美日本免费一区二区三区 | 精品精品 | 黄色片免费看. | 亚洲免费精品网站 | 国产日韩欧美视频 | 亚洲欧洲在线观看 | 91精品国产高清自在线观看 | 99国产精品久久久久老师 | 成人午夜精品久久久久久久3d | 久久一道本 | 国产一区二区精品 | 四季久久免费一区二区三区四区 | 亚洲免费观看视频 | 国产高清一级毛片在线不卡 | 欧美一级视频 | 色九九 | 免费日韩成人 | 欧美午夜精品一区二区三区电影 | 久久福利| 中文字幕在线观看第一页 | 毛片一区二区 |