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

Vue3響應式核心:ref vs reactive深度對比

開發 前端
Vue3 提供了兩種創建響應式數據的方式:??ref?? 和 ??reactive??。它們有什么區別?在開發中該如何選擇?本文將詳細講解它們的用法、適用場景,并介紹相關的輔助 API

前言

Vue3 提供了兩種創建響應式數據的方式:ref 和 reactive。它們有什么區別?在開發中該如何選擇?本文將詳細講解它們的用法、適用場景,并介紹相關的輔助 API,如:

  • shallowRef 和 shallowReactive(淺層響應式)
  • triggerRef(手動觸發 DOM 更新)
  • customRef(自定義響應式邏輯)
  • readonly(防止數據被修改)

讀完本文,你將徹底理解 Vue3 的響應式系統,并能在項目中正確使用這些 API!

ref

?

ref接受任意類型值,返回響應式對象,通過.value訪問

需要注意的是被ref包裝之后需要.value 來進行取值或賦值,模版除外

比如:

<template>
    <!-- 無需.value -->
    <p>{{ name }}</p>
</template>
<script setup lang="ts">
const name = ref('南玖')
// 需要.value
name.value = 'nanjiu'
</script>

接收任意值

?

ref可以接收基本類型、引用類型的數據以及DOM的ref的屬性值

const name = ref('南玖')
const obj = ref({
    name: '南玖',
    age: 20
})
console.log(name)
console.log(obj)


圖片


  • 如果ref接收的是一個基本類型的數據,那么.value保存的就是就是該原始值
  • 如果ref接收的是一個引用類型的數據,那么.value保存的就是代理了該引用數據的proxy對象
  • 無論是基本數據類型還是引用數據類型,最終返回的都是由 RefImpl 類構造出來的對象

響應式

ref默認提供深層響應式,也就是說即使我們修改嵌套的引用類型數據,vue也能夠檢測到并觸發頁面更新

<template>
    <p>{{ num }}</p>
    <button @click="num++">num++</button>
    <p>{{ person.info.age }}</p>
    <button @click="person.info.age++">age++</button>
</template>

<script setup lang="ts">
const num = ref(1)
const person = ref({
    name: '鹿',
    info: {
        age: 20,
    }
})
</script>


圖片


也就是說無論嵌套多深,vue都能夠監聽到數據的變化,說到監聽數據變化,這就得提一下watch方法了,雖然vue能夠監聽到嵌套數據的變化,但是watch函數如果監聽的是ref定義的引用類型數據,默認是不會開啟深度監聽的

<template>
    <p>{{ person.info.age }}</p>
    <button @click="person.info.age++">age++</button>
</template>

<script setup lang="ts">

const person = ref({
    name: '鹿',
    info: {
        age: 20,
    }
})


watch(() => person.value, (newValue, oldValue) => {
    console.log('person changed from', oldValue, 'to', newValue)
})
</script>


圖片


雖然頁面視圖更新了,但是watch是無法監聽到數據變化的,想要監聽到這一變化,我們需要手動開啟深度監聽

watch(() => person.value, (newValue, oldValue) => {
    console.log('person changed from', oldValue, 'to', newValue)
}, {
    deep: true // 深度監聽
})


圖片


shallowRef

由于ref默認是深層響應式,但有時候我們為了性能考慮,也可以通過 shallowRef 來放棄深層響應性。對于淺層 ref,只有 .value 的訪問會被追蹤。

<template>
    <p>ref: {{ person.info.age }}</p>
    <button @click="person.info.age++">age++</button>
    <p>shallowRef: {{ animal.age }}</p>
    <button @click="animalAgeAdd">age++</button>
</template>

<script setup lang="ts">
const person = ref({
    name: '鹿',
    info: {
        age: 20,
    }
})
const animal = shallowRef({
    name: '小鹿',
    age: 5
})

const animalAgeAdd = () => {
    // 修改淺響應式對象的屬性
    animal.value.age++
    console.log('animal age changed to', animal.value.age)
}
</script>


圖片


修改屬性值,雖然數據變化了,但是頁面并不會更新,并且無法通過watch監聽數據變化。

??這里還有一點需要注意的是,ref與shallowRef最好不要一起使用,否則shallowRef會被影響

比如:

const animalAgeAdd = () => {
    // 修改深響應式對象的屬性
    person.value.info.age++
    // 修改淺響應式對象的屬性
    animal.value.age++
    // 這樣會導致頁面上的animal.age 也會更新
}


圖片


triggerRef

?

強制觸發依賴于一個淺層 ref的副作用,這通常在對淺引用的內部值進行深度變更后使用。

當一個淺層ref的屬性值發生改變又想觸發頁面更新時,可以手動調用triggerRef來實現

const animal = shallowRef({
    name: '小鹿',
    age: 5
})

const animalAgeAdd = () => {
    // 修改淺響應式對象的屬性
    animal.value.age++

    triggerRef(animal) // 手動觸發更新
}

customRef

?

創建一個自定義的 ref,顯式聲明對其依賴追蹤和更新觸發的控制方式。

customRef() 接收一個工廠函數作為參數,該函數接收 track 和 trigger 兩個函數作為參數,并返回一個帶有 get 和 set 方法的對象。

  • track:用于收集依賴項。在 get 方法中調用,收集該 ref 所依賴的響應式數據。
  • trigger:用于觸發更新。在 set 方法中調用,通知依賴項更新視圖。
const myRef = customRef((track, trigger) => {
    let value = 0
    return {
        get() {
            track()
            return value
        },
        set(newValue) {
            if (newValue !== value) {
                value = newValue
                trigger()
            }
        }
    }
})
console.log(myRef)

customRef允許我們通過獲取或設置一個變量的值時進行一些額外的操作,而不需要偵聽這個變量進行額外的操作。

比如,我們可以使用cusromRef實現一個自帶防抖的響應式數據

const useDebounceRef = (value: any, delay?: number) => {

    return customRef((track, trigger) => {
        let timer: ReturnType<typeof setTimeout>
        return {
            get() {
                track()
                return value
            },
            set(newValue) {
                clearTimeout(timer)
                timer = setTimeout(() => {
                    value = newValue
                    trigger()
                    console.log('value changed to', value)
                }, delay || 100)
            }
        }
    })
}

const inputValue = useDebounceRef('', 1000)

reactive

?

reactive用于將一個引用類型數據聲明為響應式數據,返回的是一個Proxy對象。

只接受引用類型數據

const car = reactive({
    brand: 'GTR',
    model: 'Corolla',
    year: 2020,
    info: {
        color: 'red',
        mileage: 15000
    }
})
const carNum = reactive(100)

console.log('引用數據類型', car)
console.log('基本數據類型', carNum)

圖片

重要限制reactive只接受對象類型,基本類型會原樣返回并產生警告

從上圖我們還能看到,正常使用的reactive返回的是一個Proxy對象,也就是說reactive 實現響應式就是基于ES6 Proxy 實現的。

響應式

ref一樣,reactive默認也是深層響應式,并且watch的監聽是默認開啟深度監聽的

const car = reactive({
    brand: 'GTR',
    model: 'Corolla',
    year: 2020,
    info: {
        color: 'red',
        mileage: 15000,
        total: 10
    }
})

watch(car, (newValue, oldValue) => {
    console.log('car changed from', oldValue.info.total, 'to', newValue.info.total)
})


圖片


會丟失響應式的幾個操作

  • 對象引用發生變化

由于 Vue 的響應式跟蹤是通過屬性訪問實現的,因此必須始終保持對響應式對象的相同引用。

let person = reactive({
    name: 'nanjiu'
})
// 重新賦值
person = {
    name: '南玖22',
}
// 這里再修改數據,頁面并不會更新
const changeNameProxy = () => {
    person.name = '小鹿' // 修改代理對象的屬性
    console.log('修改代理對象后', person) // Proxy(Object) {name: '小鹿'}
}


圖片


  • 解構

當我們將響應式對象的原始類型屬性解構為本地變量時,或者將該屬性傳遞給函數時,也將丟失響應性

let person = reactive({
    name: 'nanjiu'
})
let { name } = person
const changeNameProxy = () => {
    name = '小鹿' // 修改解構后的屬性,頁面不會更新,person.name也不會更新
    console.log('修改代理對象后', person) // Proxy(Object) {name: 'nanjiu'}
}

原始對象與代理對象

  • reactive() 返回的是一個原始對象的 Proxy代理對象,兩者是不相等的
const raw = {
    name: '南玖'
}
const person = reactive(raw)

console.log('原始對象', raw)
console.log('響應式對象', person)
console.log('person === raw', person === raw) // false


圖片


  • 原始對象與代理對象是相互影響的
const raw = {
    name: '南玖'
}
const person = reactive(raw)

raw.name = '小鹿' // 修改原始對象的屬性
// person.name = '小鹿' // 修改響應式對象的屬性

console.log('原始對象', raw)  // {name: '小鹿'}
console.log('響應式對象', person) // Proxy(Object) {name: '小鹿'}

當原始對象里面的數據發生改變時,代理對象的數據也會發生變化;當代理對象里面的數據發生變化時,對應的原始數據也會發生變化

既然兩者可以相互影響,那么修改原始對象會不會觸發頁面更新呢???

答案是不會的,只有代理對象是響應式的,更改原始對象不會觸發更新。因此,使用 Vue 的響應式系統的最佳實踐是僅使用你聲明對象的代理版本。

代理一致性

為保證訪問代理的一致性,對同一個原始對象調用 reactive() 會總是返回同樣的代理對象,而對一個已存在的代理對象調用 reactive() 會返回其本身:

// 在同一個對象上調用 reactive() 會返回相同的代理
console.log(reactive(raw) === proxy) // true

// 在一個代理上調用 reactive() 會返回它自己
console.log(reactive(proxy) === proxy) // true

依靠深層響應行,響應式對象內的嵌套屬性依然是代理對象

const raw = {
    name: '南玖'
}
const obj = {}
const person = reactive(raw)

person.hobby = obj
console.log('hobby', person.hobby) // Proxy(Object) {}
console.log('hobby === obj', person.hobby === obj) // false

shallowReactive

與shallowRef類似,shallowReactive也是用于聲明一個淺層的響應式對象,用于性能優化處理

const shallowObj = shallowReactive({
    name: '南玖',
    age: 20,
    info: {
        hobby: 'run'
    }
})

const changeNameProxy = () => {
    shallowObj.info.hobby = 'swim' // 修改嵌套對象的屬性, 頁面不會更新
    console.log('修改后的代理對象', shallowObj) 
}


圖片


但如果同時修改頂層屬性與嵌套屬性的話,頁面也是會同時更新頂層值與嵌套值的渲染,一般來說我們要避免這樣使用,這會讓數據流難以理解和調試

const changeNameProxy = () => {
    shallowObj.name = '小鹿' // 修改對象的頂層屬性
    shallowObj.info.hobby = 'swim' // 修改嵌套對象的屬性
    console.log('修改后的代理對象', shallowObj) 
}


圖片


readonly

?

接受一個對象 (不論是響應式還是普通的) 或是一個 ref,返回一個原值的只讀代理。常用于數據保護

const shallowObjReadonly = readonly(shallowObj) // 創建只讀的淺響應式對象

shallowObjReadonly.name = 'nanjiu' // 只讀對象不能修改屬性, 會拋出錯誤

總結

特性

ref

reactive

接受類型

任意類型

僅對象類型

訪問方式

通過.value訪問

直接訪問屬性

模板解包

自動解包(無需.value)

無需解包

深層響應

默認支持

默認支持

性能優化

shallowRef

shallowReactive

watch

對于引用類型,watch默認不會開啟深度監聽

默認開啟深度監聽

引用替換

保持響應(.value=新引用)

完全丟失響應

解構處理

需保持.value引用

需配合toRefs

適用場景

基本類型、組件模板引用、跨函數傳遞

復雜對象、狀態管理、局部狀態


責任編輯:龐桂玉 來源: 前端南玖
相關推薦

2025-07-31 09:05:38

2022-12-06 08:39:27

Vue3Reactive

2021-12-02 05:50:35

Vue3 插件Vue應用

2021-12-28 08:46:00

Vue3refreactive

2022-06-26 00:00:02

Vue3響應式系統

2024-04-11 13:10:00

Vue3Reactive響應性

2021-09-27 06:29:47

Vue3 響應式原理Vue應用

2025-06-06 06:17:48

VueReact前端

2025-08-06 13:39:39

Vue3React響應性

2023-08-09 10:21:07

Vue 3Reactive

2022-06-23 07:46:34

VueMobx系統

2023-02-06 08:39:01

PreactVue3響應式

2025-02-17 08:58:06

2023-12-06 07:43:56

Vue如何定義事件

2022-07-12 08:14:15

vue3refIsRef

2020-06-09 11:35:30

Vue 3響應式前端

2023-06-13 08:01:27

qwikSolidJS?reactive

2025-03-21 08:30:00

Vue3前端框架

2024-05-06 00:00:00

RefReactive性能

2022-01-19 18:05:47

Vue3前端代碼
點贊
收藏

51CTO技術棧公眾號

欧美日韩亚洲综合一区二区三区| 成人免费精品视频| 亚洲图中文字幕| 手机视频在线观看| 99在线播放| eeuss鲁片一区二区三区在线观看| 91国语精品自产拍在线观看性色 | 欧美tickling网站挠脚心| 国精产品一区一区三区视频| 免费看男男www网站入口在线 | 日本久久一二三四| 日韩午夜激情电影| 日本熟妇人妻xxxxx| 人妻少妇精品无码专区二区| 久久美女福利视频| www.黄在线观看| 国产在线免费视频| 成人av在线播放| 午夜欧美2019年伦理| 欧美日韩精品免费看| 国产露脸国语对白在线| 亚洲国产高清一区二区三区| 国产亚洲aⅴaaaaaa毛片| 日本少妇激三级做爰在线| 极品av在线| 亚洲乱码中文字幕| 欧日韩一区二区三区| 精品国产无码一区二区三区| 久久激情综合| 欧美人成在线视频| 国产一二三av| 亚洲精品亚洲人成在线| 91精品在线观看入口| 我的公把我弄高潮了视频| 看黄网站在线| 国产欧美日韩精品一区| 国产在线播放一区二区| 国产乱码精品一区二三区蜜臂| 麻豆成人精品| 7777精品视频| 国产主播在线播放| 午夜精品网站| 久久精品视频在线| 人妻无码一区二区三区免费| 日本国产精品| 亚洲国产精品999| 永久免费看片在线观看| 先锋影音网一区二区| 在线观看免费亚洲| 国产精品少妇在线视频| 少妇在线看www| 香蕉成人啪国产精品视频综合网| 日本老太婆做爰视频| av文字幕在线观看| 亚洲欧美综合网| 亚洲图片在线观看| aⅴ在线视频男人的天堂| 久久久久久久久久美女| 欧美日本亚洲| 欧美少妇另类| 久久这里只有精品视频网| 精品伊人久久大线蕉色首页| 内射后入在线观看一区| 成人深夜视频在线观看| 69堂成人精品视频免费| av免费在线不卡| 国产另类ts人妖一区二区| 96国产粉嫩美女| 欧美自拍电影| 91亚洲午夜精品久久久久久| 国产成人精品一区二区三区福利| 国产哺乳奶水91在线播放| 激情六月婷婷久久| 91在线免费网站| www.av网站| 成人国产精品视频| 九九九久久久| 蜜桃视频在线免费| 日本一区二区成人| 中文字幕欧美日韩一区二区三区| 久久综合之合合综合久久| 亚洲女厕所小便bbb| 91视频 - 88av| 黄色在线看片| 欧美小视频在线| 手机在线看福利| 国产精品视频一区视频二区| 欧美xxxxxxxx| 国产美女精品久久| 日韩一区二区在线| 欧美精品一区二区三区国产精品| 国产午夜福利片| 久久一区精品| 91精品久久久久久综合乱菊| a级片免费观看| 92国产精品观看| 色涩成人影视在线播放| 91网址在线观看| 欧美日韩亚洲91| 天天爽天天爽夜夜爽| 日韩精品三级| 亚洲精品一区中文| 九九热久久免费视频| 亚洲午夜av| 国产精品 欧美在线| 国产jzjzjz丝袜老师水多| 99视频一区二区| 亚洲在线色站| 韩日成人影院| 日韩免费在线观看| 欧美黄色激情视频| 狠狠88综合久久久久综合网| 欧美大奶子在线| av在线免费播放网址| 欧美激情视频一区二区三区免费| 欧美激情区在线播放| 日本精品免费观看高清观看| 国产黄页在线观看| 欧美人体一区二区三区| 国产一区二区三区丝袜| 五月天激情播播| 麻豆一区二区| 久久久999成人| 91av在线播放视频| 国产一级免费片| 免费av一区二区三区四区| 成人黄色国产精品网站大全在线免费观看| 国产亚洲人成网站在线观看| 啪啪一区二区三区| 99香蕉国产精品偷在线观看| 国产一区深夜福利| 欧美日本韩国一区二区| 亚洲一区二区三区四区在线免费观看 | 欧美激情视频在线观看| 日韩欧美在线观看免费| 国产精品自在欧美一区| 日韩精品久久久免费观看 | 97免费中文视频在线观看| 日韩中文字幕亚洲| 四虎永久免费在线| 久热国产精品| 久久精品久久精品国产大片| a毛片在线播放| 欧美视频一区二区三区四区| 亚洲天堂视频一区| 国产98在线| 亚洲精品日产精品乱码不卡| 日本www.色| 国产欧美日韩精品高清二区综合区| 91精品国产高清自在线看超| 内射后入在线观看一区| 亚洲成在人线免费| 中国特级黄色大片| 亚洲国产高清视频| 精品国产免费久久久久久尖叫| 亚洲图区一区| 日韩午夜在线观看视频| 欧美成人三级视频| 国产**成人网毛片九色 | www激情五月| 99久久久久国产精品| 成人国产精品av| 国产黄a三级三级三级av在线看 | 人人干人人干人人| 欧美日韩一二三四| 国产精品自产拍在线观| 麻豆视频网站在线观看| 欧美精品亚洲二区| 真实国产乱子伦对白在线| 国产99久久久国产精品潘金| av免费观看大全| 色婷婷综合久久久久久| 国产精品盗摄久久久| 日本中文字幕在线播放| 在线成人免费视频| 久久精品国产亚洲av高清色欲 | 求av网址在线观看| 日韩写真欧美这视频| 国产精品9191| wwwwww.欧美系列| www.这里只有精品| 欧美日韩国产探花| 精品午夜一区二区三区| 国产精品毛片久久久久久久久久99999999| 一本一道久久a久久精品逆3p | 国产精品18在线| 国产激情精品久久久第一区二区| www.好吊操| 国产精品欧美在线观看| 亚洲一区二区免费| 丝袜诱惑一区二区| 久久久97精品| 四虎精品在线| 欧美福利电影网| 国产女同在线观看| 国产精品国产成人国产三级 | 日韩视频免费在线观看| 丰满少妇被猛烈进入| 日韩欧美中文第一页| 五月天婷婷色综合| 97se亚洲国产综合自在线观| 免费成人黄色大片| 国产精品亚洲综合久久| 一级全黄肉体裸体全过程| 波多野结衣在线一区二区| 国产精品激情av在线播放| 欧美另类tv| 中文字幕亚洲二区| 天天在线女人的天堂视频| 欧美日韩精品一区二区三区蜜桃 | 国产精品青草久久久久福利99| 精品欧美色视频网站在线观看| 亚洲精品国产suv| 国产精品自拍电影| 欧美专区日韩专区| 制服.丝袜.亚洲.中文.综合懂色| 亚洲日本一区二区三区| 91在线无精精品白丝| 97超碰欧美中文字幕| 肉丝美足丝袜一区二区三区四| 蜜桃av噜噜一区| 免费观看成人网| 在线精品在线| 精品嫩模一区二区三区| 日韩一区电影| 亚洲国产婷婷香蕉久久久久久99| 国内自拍欧美| 99高清视频有精品视频| 欧美在线se| 国产精品视频xxxx| 亚洲黄色中文字幕| 91精品国产91久久久| 国产乱妇乱子在线播视频播放网站| 日韩中文字幕视频在线观看| 国产高清一区在线观看| 亚洲精品永久免费| 四虎成人免费在线| 日韩不卡在线观看| 天天操天天插天天射| 亚洲а∨天堂久久精品9966| 国产免费不卡av| 欧美电影一区二区| 国产精品自偷自拍| 日韩亚洲国产中文字幕欧美| 国产成a人亚洲精v品无码| 7777精品伊人久久久大香线蕉的 | 欧美精品久久久久久久多人混战| 日韩av免费播放| 欧美综合一区二区三区| 久久久久久久久久一级| 欧美婷婷六月丁香综合色| 中文字幕免费高清网站| 91国偷自产一区二区三区成为亚洲经典 | 亚洲国产精品二区| 精品美女一区二区| 国产 日韩 欧美 综合| 日韩精品一区二区三区中文精品| 国产三级伦理片| 日韩美女视频在线| 日本xxxxwww| 亚洲国产欧美一区二区三区同亚洲 | 婷婷综合在线视频| 国产精品久久久久四虎| 蜜桃视频最新网址| 亚洲日本一区二区三区| 欧美成人精品欧美一级| 亚洲va欧美va人人爽| 久久免费激情视频| 一本到一区二区三区| 婷婷激情五月综合| 777午夜精品免费视频| 国产丰满果冻videossex| 日韩视频在线你懂得| 亚洲精品国产片| 日韩精品一区二区三区第95| 久久久久久久久亚洲精品| 一区二区三区四区视频| 免费av网站在线看| 国内精品伊人久久| 欧美男体视频| 91精品国产自产在线老师啪| 日韩欧美中文字幕一区二区三区| 国产综合动作在线观看| 国产一区二区在线| 看一级黄色录像| 99综合精品| 污污网站在线观看视频| 成人a免费在线看| 国产毛片欧美毛片久久久| 亚洲欧美日韩电影| 国产成人综合欧美精品久久| 欧美日韩国产高清一区二区三区| 国产精品探花视频| 日韩三级视频在线观看| 黄网在线免费| 欧美激情亚洲自拍| 视频一区在线免费看| 成人av网站观看| 欧洲专线二区三区| 妺妺窝人体色www看人体| 老妇喷水一区二区三区| xxxx国产视频| 国产欧美日韩精品a在线观看| 国产在线欧美在线| 3d动漫精品啪啪| 精品视频二区| 久久久欧美一区二区| 国产亚洲人成a在线v网站| 国产丝袜不卡| 中文字幕亚洲综合久久五月天色无吗''| www.中文字幕在线| 国产精品一区二区在线播放| 精品无人区无码乱码毛片国产| 亚洲影视在线播放| 国产精品无码久久久久成人app| 日韩电影中文字幕av| 欧美另类tv| 亚洲a在线播放| 日韩精品一区二区三区免费观影| 国产免费观看高清视频| 国产精品一区二区免费不卡 | 欧美一级黄色网| 视频欧美一区| 一区二区三区|亚洲午夜| 亚洲一区不卡| 国产人妻黑人一区二区三区| 亚洲男人都懂的| 91尤物国产福利在线观看| 国产一区二区三区在线看| 亚洲天堂av在线| 精品日韩欧美| 亚洲免费精品| 亚洲自拍偷拍精品| 亚洲大片免费看| 国产91绿帽单男绿奴| 九九精品视频在线观看| 深夜福利亚洲| 伊人久久婷婷色综合98网| 天堂va蜜桃一区二区三区| av在线网站观看| 丰满岳妇乱一区二区三区| 色婷婷av一区二区三区之e本道| 色综合色综合网色综合| 试看120秒一区二区三区| 永久免费看av| 国产精品一二三区| 青青草激情视频| 欧美va亚洲va国产综合| 欧美xxxx做受欧美88bbw| 99re在线国产| 亚洲茄子视频| 亚洲狠狠婷婷综合久久久久图片| 午夜国产精品一区| 日本福利片高清在线观看| 欧美在线不卡区| 国产欧美日韩精品一区二区三区| 蜜臀av午夜一区二区三区| 欧美激情综合网| 亚洲影院一区二区三区| www.国产精品一二区| 国产日韩一区二区三免费高清 | 激情一区二区| 国产精品福利导航| 色婷婷综合久久久久中文 | 国产午夜精品理论片a级大结局| aaa人片在线| 一区二区成人精品| 天天综合91| 久青草视频在线播放| 97se亚洲国产综合在线| 中文字幕久久网| 久久伊人免费视频| 国产精品久久久久久久久久白浆 | √天堂中文官网8在线| 日韩欧美另类在线| 涩涩av在线| 一本一生久久a久久精品综合蜜| 国产精品一区不卡| 日产精品久久久久久久| 亚洲日韩中文字幕| 亚洲最大的免费视频网站| 欧美久久在线观看| 国产日韩影视精品| 国产美女永久免费| 欧美自拍视频在线观看| 99视频精品全国免费| 亚洲av永久无码精品| 欧美性猛片aaaaaaa做受| 手机av免费在线| 欧美精品一区二区视频| 激情欧美一区二区| 国内精品福利视频| 久久综合久久美利坚合众国| 欧美顶级毛片在线播放| 色婷婷综合网站| 午夜精品123| 米奇777四色精品人人爽| 好吊妞www.84com只有这里才有精品 | 四虎永久在线精品无码视频| 亚洲人成7777|