韩国中文字幕2020精品_久久久久亚洲综合_国产精品天美传媒_国产偷国产偷亚洲高清人白洁 _中文字幕精品一区二区三区精品_不卡视频在线看_国产精品亲子伦对白_偷拍与自拍一区_北条麻妃一区二区在线观看 _国产免费一区二区三区在线观看

世界快資訊:Vue入門淺析

2023-05-15 17:33:23 來源: 博客園

title: vue入門淺析author: Sun-Winddate: May 14,2022

寫這篇博文的目的在于為初學vue的同學對vue有一些更進一步的了解讀這篇博文前,您應該至少安裝了vue環境,能在本地運行一個簡單的demo本文將淺析vue項目工程的結構,以及用npm運行項目的過程中發生的一些事件注明:該文本應在2022.5.14發表,由于博主有其他安排耽擱后面忘了,現在補上。

項目的文件結構主文件結構

一般的vue工程項目核心部分都在src里存放 vue 項目的源代碼。其文件夾下的各個文件(文件夾)分別為:


(資料圖片)

assets?:資源文件,比如存放 css,圖片等資源component?:組件文件夾,用來存放 vue 的公共組件(注冊于全局,在整個項目中通過關鍵詞便可直接輸出)。router?:用來存放 ?index.js?,這個 js 用來配置路由tool?:用來存放工具類 js,將 js 代碼封裝好放入這個文件夾可以全局調用(比如常見的? api.js?,?http.js? 是對 http 方法和 api 方法的封裝)views?:用來放主體頁面,雖然和組件文件夾都是 vue 文件,但 views 下的 vue 文件是可以用來充當路由 view 的。main.js?:是項目的入口文件,作用是初始化 vue 實例,并引入所需要的插件。app.vue?:是項目的主組件,所有頁面都是在該組件下進行切換的.?其他文件結構public:用于存放靜態文件public/index.html:是一個模板文件,作用是生成項目的入口文件,webpack打包的js,css也會自動注入到該頁面中。我們瀏覽器訪問項目的時候就會默認打開生成好的index.htmlpackage.json: 模塊基本信息項目開發所需要模塊,版本,項目名稱vue.config.js:包含vue項目的其他配置,包括端口等信息node_modules:項目的依賴模塊dist:打包文件npm run serve/dev淺析

我們在本地運行vue項目,常見的指令就是npm run serve/dev;與其說是指令,不如說是腳本我們通常會在package.json中配置 script 字段作為 NPM 的執行腳本。以個人開發項目為例,Vue.js 源碼構建的腳本如下:

"scripts": {    "serve": "vue-cli-service serve",    "build": "vue-cli-service build",    "lint": "vue-cli-service lint",    "stylelint": "stylelint src/css/*.* --fix",    "htmlhint": "htmlhint **.html",    "eslint": "eslint src/**/*.js src/**/*.vue",    "eslint-fix-js": "eslint src/**/*.js --fix",    "eslint-fix-vue": "eslint src/**/*.vue --fix"  },

所以當我們在終端運行npm run serve時,實際上運行的是vue-cli-service serve通過這個腳本去構建整個vue項目

構建的過程中發生了什么public/index.html

之前我們提到過,這個文件作為項目的入口文件,首先加載這個html文件下面這些代碼是個例子

        

我們注意到一個特別的div塊,它的id為app

src/main.js

這里的app其實與src/main.js文件有關

import Vue from "vue";new Vue({  el: "#app",  render: h => h(app)});

我們都知道,new 關鍵字在 Javascript 語言中代表實例化是一個對象,而 Vue 實際上是一個類,類在 Javascript 中是用 Function 來實現的,在vue.js源碼中是這樣定義的

function Vue (options) {  if (process.env.NODE_ENV !== "production" &&    !(this instanceof Vue)  ) {    warn("Vue is a constructor and should be called with the `new` keyword")  }  this._init(options)}

可以看到vue只能通過關鍵字初始化,this._init函數這里就不再具體介紹Vue 初始化主要就干了幾件事情,合并配置,初始化生命周期,初始化事件中心,初始化渲染,初始化 data、props、computed、watcher 等等。

在初始化的最后,檢測到如果有 el 屬性,則調用 vm.$mount 方法掛載 vm,掛載的目標就是把模板渲染成最終的DOM在compiler版本的$mount實現中,它對 el 做了限制,Vue 不能掛載在 body、html這樣的根節點上。接下來的是很關鍵的邏輯 —— 如果沒有定義 render 方法,則會把 el 或者 template字符串轉換成 render 方法。

這里我們要牢記,在 Vue 2.0 版本中,所有 Vue 的組件的渲染最終都需要 render方法,無論我們是用單文件 .vue 方式開發組件,還是寫了 el 或者 template 屬性,最終都會轉換成 render 方法,那么這個過程是 Vue 的一個在線編譯的過程。

最后,調用原先原型上的 $mount 方法掛載。

結合之前public/index.html中的例子

實際上是編寫了如下render函數

render: function (createElement) {  return createElement("div", {     attrs: {        id: "app"      },  })}

vm._render 最終是通過執行 createElement 方法并返回的是 vnode,它是一個虛擬 Node

Virtual DOM介紹

瀏覽器真正的DOM通常是非常龐大的,因為瀏覽器產生DOM的標準本身就比較復雜,當我們頻繁地進行DOM更新,就會產生一系列的性能問題而 Virtual DOM 就是用一個原生的 JS 對象去描述一個 DOM 節點,所以它比創建一個 DOM 的代價要小很多。在 Vue.js 中,Virtual DOM 是用 VNode 這么一個 Class 去描述在 Vue.js 中,VNode 的 create 是通過之前提到的 createElement 方法創建的。

生命周期

這也是一張比較經典的圖了在開發過程中,我們會頻繁地跟vue的生命周期打交道

beforeCreate 和 created 函數都是在實例化 Vue 的階段在vue.js源碼中 beforeCreate 和 created 的鉤子調用是在 initState 的前后,initState 的作用是初始化 props、data、methods、watch、computed 等屬性

在執行 vm._render() 函數渲染 VNode 之前,執行了 beforeMount 鉤子函數,在執行完 vm._update() 把 VNode patch 到真實 DOM 后,執行 mouted 鉤子。beforeUpdate 和 updated 的鉤子函數執行時機都應該是在數據更新的時候,比如雙向綁定等等

export function mountComponent (  vm: Component,  el: ?Element,  hydrating?: boolean): Component {  // ...  // we set this to vm._watcher inside the watcher"s constructor  // since the watcher"s initial patch may call $forceUpdate (e.g. inside child  // component"s mounted hook), which relies on vm._watcher being already defined  new Watcher(vm, updateComponent, noop, {    before () {      if (vm._isMounted) {        callHook(vm, "beforeUpdate")      }    }  }, true /* isRenderWatcher */)  // ...}

可以看到這里有一個vm._isMounted的判斷,也就是說組件在mounted后才會去執行這個鉤子函數同時這里實例化了一個watcher去監聽vm上的數據變化重新渲染

beforeDestroy 和 destroyed 鉤子函數的執行時機在組件銷毀的階段注意mounted和destroyed的執行過程都是先子后父從下圖可以看到初始化vue到最終渲染的整個過程

注冊組件

在開發一個組件的過程中往往會用到其他的組件組件注冊的語法如下

Vue.component("my-component", {  // 選項})

import HelloWorld from "./components/HelloWorld"export default {  components: {    HelloWorld  }}

注冊組件實際上是一個合并的過程,合并option再創建vnode。

由于博主在這一部分學識尚淺,暫不做過多的描述

下載插件

開發的過程中很可能需要一些其他的插件如Element等使用一般來說通過Vue.use()來下載插件,并且會阻止多次注冊相同的插件

export function initUse (Vue: GlobalAPI) { Vue.use = function (plugin: Function | Object) {  const installedPlugins = (this._installedPlugins || (this._installedPlugins = []))  if (installedPlugins.indexOf(plugin) > -1) {   return this  }  const args = toArray(arguments, 1)  args.unshift(this)  if (typeof plugin.install === "function") {   plugin.install.apply(plugin, args)  } else if (typeof plugin === "function") {   plugin.apply(null, args)  }  installedPlugins.push(plugin)  return this }}

這是use方法的源碼,可以看到其參數只能是object或者function,然后判斷其是否被注冊過然后再調用該插件的install方法

可以看到 Vue 提供的插件注冊機制很簡單,每個插件都需要實現一個靜態的 install 方法,當我們執行 Vue.use 注冊插件的時候,就會執行這個 install 方法,并且在這個 install 方法的第一個參數我們可以拿到 Vue 對象,這樣的好處就是作為插件的編寫方不需要再額外去import Vue 了。

路由

路由的主要作用是根據不同的路徑映射到不同的視圖,一般我們用官方插件vue-router來解決路由的問題

Object.defineProperty(Vue.prototype, "$router", {    get () { return this._routerRoot._router }  })  Object.defineProperty(Vue.prototype, "$route", {    get () { return this._routerRoot._route }  })

在vue-router的類定義中有在vue原型上定義的 $router 和 $route 兩個屬性的get方法,這也是為什么可以在組件實例上訪問 this.$router和this.$route

在new一個vueRouter后會返回它的實例,在beforecreate()中有這樣一段代碼

beforeCreate() {  if (isDef(this.$options.router)) {    // ...    this._router = this.$options.router    this._router.init(this)    // ...  }}  

所以在執行該鉤子函數時,如果有傳入router實例,則會執行router.init方法匹配是利用matcher匹配,并且會生成用戶的路由表(具體細節暫時不表)當我們點擊router-link的時候,會通過一系列函數找到完整的url,執行pushState方法

export function pushState (url?: string, replace?: boolean) {  saveScrollPosition()  const history = window.history  try {    if (replace) {      history.replaceState({ key: _key }, "", url)    } else {      _key = genKey()      history.pushState({ key: _key }, "", url)    }  } catch (e) {    window.location[replace ? "replace" : "assign"](url)  }}

該方法會更新瀏覽器的url地址,并且把當前url壓入歷史棧中有一個專門的監聽器會監聽歷史棧的變化情況

setupListeners () {  const router = this.router  const expectScroll = router.options.scrollBehavior  const supportsScroll = supportsPushState && expectScroll  if (supportsScroll) {    setupScroll()  }  window.addEventListener(supportsPushState ? "popstate" : "hashchange", () => {    const current = this.current    if (!ensureSlash()) {      return    }    this.transitionTo(getHash(), route => {      if (supportsScroll) {        handleScroll(this.router, route, current, true)      }      if (!supportsPushState) {        replaceHash(route.fullPath)      }    })  })}

當點擊瀏覽器的返回按鈕時,會觸發popstate事件,通過同樣的方法拿到當前要跳轉的url并進行路徑轉換

在router-view中

data.routerView = true// ...while (parent && parent._routerRoot !== parent) {  if (parent.$vnode && parent.$vnode.data.routerView) {    depth++  }  if (parent._inactive) {    inactive = true  }  parent = parent.$parent}const matched = route.matched[depth]// ...const component = cache[name] = matched.components[name]

這個循環就是從當前的的父節點向上找,一直找到根節點(vue實例),遍歷完成后,就根據當前遍歷的深度和路徑找到對應的組件并進行渲染在router-view的最后有根據 component 渲染出對應的組件 vonde:

return h(component, data, children)
hash模式:單頁應用標配,hash發生變化的url都會被瀏覽器記錄下來history模式:可以進行切換和修改(歷史狀態),使得路由配置更自由其他vuex

Vuex 是一個專為 Vue.js 應用程序開發的狀態管理模式。它采用集中式存儲管理應用的所有組件的狀態,并以相應的規則保證狀態以一種可預測的方式發生變化。該狀態管理模式包含以下幾個部分:

state:驅動數據的應用源view:以聲明方法將state映射到視圖actions:響應在view上用戶的輸入導致的狀態變化以下是一個簡單的數據流模式

需要注意以下兩點

Vuex 的狀態存儲是響應式的。當 Vue 組件從 store 中讀取狀態的時候,若 store 中的狀態發生變化,那么相應的組件也會相應地得到高效更新。你不能直接改變 store 中的狀態。改變 store 中的狀態的唯一途徑就是顯式地提交 (commit) mutation。這樣使得我們可以方便地跟蹤每一個狀態的變化,從而讓我們能夠實現一些工具幫助我們更好地了解我們的應用。

參考書籍《vue.js技術揭秘》

關鍵詞:

精選 導讀

世界快資訊:Vue入門淺析

title:vue入門淺析author:Sun-Winddate:May14,2022寫這篇博文的目的在于為初學vue的同學對vue有一些更進一

發布時間: 2023-05-15 17:33
要聞   2023-05-15

熱點!從“靠鋼吃飯”到“棄鋼突圍”:一家鋼企的數字變身

新華社天津5月12日電(記者郭方達)尚未進入廠區,灰色外墻上一幅巨大的鯤形彩繪率先映入眼中。多彩墻體結

發布時間: 2023-05-15 16:54
要聞   2023-05-15

左洛復鹽酸舍曲林說明書_舍曲林說明書-天天通訊

1、有證據表明,舍曲林在過量服用時仍有很大的安全范圍。2、曾有舍曲林單獨過量服用高達13 5g的報道。3、曾

發布時間: 2023-05-15 16:21
要聞   2023-05-15

“互換通”啟動 金融開放穩步推進

“互換通”啟動金融開放穩步推進

發布時間: 2023-05-15 16:06
要聞   2023-05-15

煙臺市萊山區第八小學開展地震應急疏散演練活動

為進一步增強師生安全意識,提高全校師生緊急避險、自救自護和應變的能力,掌握地震來臨時最有效的逃生方法

發布時間: 2023-05-15 15:14
要聞   2023-05-15

熱點 推薦

世界快資訊:Vue入門淺析

title:vue入門淺析author:Sun-Winddate:May14,2022寫這篇博文的目的在于為初學vue的同學對vue有一些更進一

發布時間: 2023-05-15 17:33
要聞   2023-05-15

萬里印刷(08385.HK)一季度凈虧損1069.9萬港元

格隆匯5月15日丨萬里印刷(08385 HK)公布,截至2023年3月31日止第一季度,公司收益為4221 7萬港元,同比減少

發布時間: 2023-05-15 17:31
IT   2023-05-15

天津創業型人才落戶準遷證獲取方式

??天津創業型人才落戶準遷證獲取方式獲取方式一覽業務辦理進度查詢提交成功后個人中心的“業務網辦進度”

發布時間: 2023-05-15 17:09
國內   2023-05-15

世界快看:蘭州市博物館參觀攻略(門票預約+開放時間+交通指

蘭州市博物館參觀攻略博物館地處市中心繁華地段的慶陽路240號,依明代白衣寺舊址而建。現有包括中軸線上的

發布時間: 2023-05-15 17:03
科技   2023-05-15

東風本田征戰TCR China 揭幕戰斬獲亞軍上演賽道“名場面”

賽道競逐,風云再起。5月12日-14日,2023年CTCC中國汽車場地職業聯賽超級杯·TCR中國系列賽震撼來襲,首站

發布時間: 2023-05-15 17:02
汽車   2023-05-15

熱點!從“靠鋼吃飯”到“棄鋼突圍”:一家鋼企的數字變身

新華社天津5月12日電(記者郭方達)尚未進入廠區,灰色外墻上一幅巨大的鯤形彩繪率先映入眼中。多彩墻體結

發布時間: 2023-05-15 16:54
要聞   2023-05-15

感恩母親 體驗“孕媽媽”艱辛-新動態

母愛,是每個人成長道路上不可或缺的親情。她最關心我們,對我們無私奉獻,不求回報。5月14日,在母親節這

發布時間: 2023-05-15 17:05
IT   2023-05-15

聯想ThinkPad春季新品發布會預熱,30周年限定禮盒“驚喜出艙”

IT之家5月15日消息,聯想ThinkPad官博發布預熱,新品發布會即將在5月18日舉行。官博發布的視頻介紹的是Thin

發布時間: 2023-05-15 16:46
國內   2023-05-15

敏華控股(01999)將于7月20日派發末期股息每股10港仙_全球熱頭條

敏華控股(01999)公布,公司將于2023年7月20日派發末期股息每股10港仙。

發布時間: 2023-05-15 16:59
科技   2023-05-15

左洛復鹽酸舍曲林說明書_舍曲林說明書-天天通訊

1、有證據表明,舍曲林在過量服用時仍有很大的安全范圍。2、曾有舍曲林單獨過量服用高達13 5g的報道。3、曾

發布時間: 2023-05-15 16:21
要聞   2023-05-15

四川調研督導道路交通安全和運輸執法領域突出問題專項整治工

四川新聞網-首屏新聞成都5月15日訊(記者胡旭陽)為扎實推進道路交通安全和運輸執法領域突出問題專項整治工

發布時間: 2023-05-15 16:21
IT   2023-05-15

石墨文檔回應崩了:故障正在全力排查搶修中

針對服務器宕機一事,在線協同辦公平臺石墨文檔回應稱,因技術原因,目前部分石墨文檔暫時無法編輯,故障正

發布時間: 2023-05-15 16:21
國內   2023-05-15

拼多多貨在路上可以申請退款嗎?拼多多退款多久可以到賬?

拼多多是大家經常使用并且非常熟悉的一家電商平臺,用戶可以在上面買到各種商品,并享受不同類型的優惠,其中拼團優惠是拼多多比較突出的一

發布時間: 2023-05-15 16:28
推薦   2023-05-15

V8混動 蘭博基尼Urus PHEV諜照曝光

[本站海外諜照]日前,外媒在蘭博基尼工廠附近拍攝到了UrusPHEV測試車。按照計劃這款車將會在2024年正式發布

發布時間: 2023-05-15 16:09
汽車   2023-05-15

年產250臺 AC Cobra GT Roadster首發 天天速讀

[本站新車首發]曾經為世界車迷貢獻了傳世經典跑車ACCobra的英國AC汽車公司近日正式推出該車的復刻版本――A

發布時間: 2023-05-15 16:23
汽車   2023-05-15

環球即時看!阿斯頓·馬丁新DB系列將于5月24日首發

[本站資訊]近日,我們從阿斯頓?馬丁官方獲取了三張全新一代DBGT的預告圖,新車將于5月24日首發。阿斯頓?

發布時間: 2023-05-15 16:02
汽車   2023-05-15

拼多多退店要等30天嗎? 退店的條件是什么?

拼多多平臺的店鋪數量越來越多了, 競爭非常激烈,在這種情況下,很多人選擇將自己的店鋪轉讓出去或者是關閉掉,那么,拼多多退店要等30天

發布時間: 2023-05-15 16:25
推薦   2023-05-15

當前熱點-畫蛋糕圖片大全大圖涂色_畫蛋糕圖片

你們好,最近小活發現有諸多的小伙伴們對于畫蛋糕圖片大全大圖涂色,畫蛋糕圖片這個問題都頗為感興趣的,今

發布時間: 2023-05-15 16:00
科技   2023-05-15

七天無理由退貨有運費險嗎?七天之內退貨運費誰出?

線上購物是現在比較熱門的一種購物方式,一方面線上購物發貨比較快,甚至第二天就能到貨,另一方面線上購物商品價格會更加優惠、便宜。此外

發布時間: 2023-05-15 16:21
社會   2023-05-15

買車可以用支付寶支付嗎?全款買車都是怎么支付的?

買車的時候,選擇好汽車等待商家提交訂單即可支付了, 買車可以用銀行卡也可以用現金,那么,買車可以用支付寶支付嗎?全款買車都是怎么支

發布時間: 2023-05-15 16:18
社會   2023-05-15
韩国中文字幕2020精品_久久久久亚洲综合_国产精品天美传媒_国产偷国产偷亚洲高清人白洁 _中文字幕精品一区二区三区精品_不卡视频在线看_国产精品亲子伦对白_偷拍与自拍一区_北条麻妃一区二区在线观看 _国产免费一区二区三区在线观看
在线免费观看日本一区| 国产一区二区三区美女| 亚洲九九爱视频| 黄色精品一二区| 欧美成人欧美edvon| 亚洲超丰满肉感bbw| 在线观看www91| 亚洲综合在线视频| 欧美日本在线一区| 午夜久久久久久电影| 日韩午夜av电影| 精品一区二区在线播放| 国产欧美日本一区视频| 91色婷婷久久久久合中文| 国产精品欧美一区喷水| av在线一区二区三区| 亚洲午夜久久久久久久久久久| 在线精品视频免费观看| 蜜桃一区二区三区在线观看| 日本一区二区三区四区在线视频| 99久久综合精品| 亚洲va欧美va国产va天堂影院| 日韩精品一区二区三区三区免费| 国产剧情在线观看一区二区| 亚洲欧美偷拍另类a∨色屁股| 欧美性淫爽ww久久久久无| 日韩国产高清在线| 国产精品美女久久久久av爽李琼| 91精品欧美久久久久久动漫| 成人激情午夜影院| 久久国产免费看| 亚洲高清在线精品| 国产精品免费av| 欧美成人国产一区二区| 在线视频欧美精品| 成人午夜电影久久影院| 久久国产精品色婷婷| 亚洲亚洲人成综合网络| 中文字幕免费一区| 精品国产123| 91精品在线麻豆| 色婷婷综合久久久中文一区二区| 韩国毛片一区二区三区| 免费在线看成人av| 午夜精品免费在线| 亚洲少妇30p| 国产精品毛片无遮挡高清| 欧美成人在线直播| 日韩三级精品电影久久久| 欧洲一区在线电影| 在线日韩一区二区| 欧美日韩亚洲综合在线| 在线观看av不卡| 欧美视频在线观看一区二区| 色一情一伦一子一伦一区| 福利一区二区在线| 国产91综合一区在线观看| 韩国v欧美v亚洲v日本v| 狠狠久久亚洲欧美| 国产精品一级黄| 成人午夜精品一区二区三区| 不卡一卡二卡三乱码免费网站| 成人一区二区在线观看| 成人白浆超碰人人人人| 一本一道久久a久久精品综合蜜臀| 国产iv一区二区三区| 粉嫩aⅴ一区二区三区四区| 高清日韩电视剧大全免费| 99精品在线观看视频| 色综合久久久久综合体| 欧美日韩国产色站一区二区三区| 欧美日韩国产首页| 欧美mv日韩mv亚洲| 国产精品第一页第二页第三页| 中文字幕亚洲精品在线观看| 一区二区三区免费| 麻豆精品国产传媒mv男同| 国产成人免费在线| 在线观看免费成人| 日韩精品中文字幕一区| 国产精品久久久久一区二区三区 | 国产精品乱人伦一区二区| 综合精品久久久| 天天av天天翘天天综合网| 国内精品在线播放| 一本大道久久a久久综合婷婷| 欧美一二三四在线| 亚洲卡通欧美制服中文| 国产高清久久久| 欧美日韩国产大片| 国产日韩欧美精品电影三级在线| 一区二区三区91| 国产高清成人在线| 日韩一卡二卡三卡四卡| 亚洲一区二区高清| 99r精品视频| 久久影音资源网| 丝袜美腿高跟呻吟高潮一区| caoporen国产精品视频| 久久亚洲欧美国产精品乐播| 午夜精品国产更新| 色婷婷久久99综合精品jk白丝| 91精品婷婷国产综合久久性色| 国产精品久久久久久久久久免费看| 日本伊人色综合网| 欧美日韩一卡二卡| 一区二区三区在线免费| 99久久久国产精品免费蜜臀| 欧美一区二区三区视频在线观看| 亚洲色图欧美激情| 成人免费视频网站在线观看| 久久精品男人天堂av| 国产真实乱子伦精品视频| 欧美精品久久99| 免费成人在线观看视频| 欧美一区二区三区视频| 蜜桃久久久久久| 久久伊人中文字幕| 国产原创一区二区| 欧美极品aⅴ影院| 成人av资源下载| 亚洲乱码国产乱码精品精可以看| 91亚洲男人天堂| 亚洲va欧美va人人爽| 日韩视频在线一区二区| 国产一区亚洲一区| 国产精品久久久久久久浪潮网站| 99久久伊人精品| 亚洲高清视频在线| 欧美成人精品1314www| 成人国产视频在线观看| 亚洲一区国产视频| 日韩午夜激情av| 国产精品亚洲成人| 中文字幕在线观看不卡视频| 欧美在线free| 精品一区二区在线播放| 亚洲视频在线一区| 日韩免费高清av| 91久久精品国产91性色tv| 毛片av中文字幕一区二区| 久久九九久精品国产免费直播| 91啪亚洲精品| 国内精品伊人久久久久av一坑 | 紧缚捆绑精品一区二区| 1024成人网色www| 日韩欧美成人午夜| 在线亚洲一区二区| 精一区二区三区| 亚洲一二三四在线| 亚洲欧美中日韩| 欧美经典一区二区| 久久先锋影音av| 日韩欧美国产高清| 日韩一区和二区| 欧美日韩免费不卡视频一区二区三区| 风间由美中文字幕在线看视频国产欧美| 天天综合网天天综合色| 一区二区三区精品在线| 中文字幕一区二区三区不卡| 精品国产人成亚洲区| 欧美精品v日韩精品v韩国精品v| 成人动漫视频在线| 国产91精品免费| 国产不卡视频一区二区三区| 久久99精品国产麻豆婷婷| 丝袜美腿成人在线| 日韩精品免费视频人成| 亚洲第一搞黄网站| 亚洲 欧美综合在线网络| 亚洲成人免费影院| 视频在线观看国产精品| 亚洲gay无套男同| 视频一区免费在线观看| 五月综合激情婷婷六月色窝| 亚洲综合一区二区三区| 亚洲一区二区在线观看视频 | 欧美精品一区二区三区一线天视频 | 日韩久久一区二区| 国产精品色哟哟| 亚洲视频资源在线| 亚洲福利电影网| 久久狠狠亚洲综合| 国产成人综合亚洲网站| 成人av网站在线| 欧美视频一区在线| 久久综合五月天婷婷伊人| 中文字幕在线观看不卡| 亚洲国产成人tv| 精品一区二区免费在线观看| 成人18精品视频| 8x8x8国产精品| 欧美国产精品专区| 亚洲国产三级在线| 国产高清无密码一区二区三区| 97久久超碰国产精品| 日韩欧美视频在线 | 久久久久久**毛片大全| 国产精品久久三| 看国产成人h片视频|