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

困擾99%前端程序員的Vue問題,全在這了

新聞 前端
最近要求使用vue進行前后端分離開發微信公眾號,不斷摸索踩坑之后,總結出如下幾點vue項目開發中常見的問題及解決辦法。

[[348925]]

 1.前言

最近要求使用vue進行前后端分離開發微信公眾號,不斷摸索踩坑之后,總結出如下幾點vue項目開發中常見的問題及解決辦法。如果你是vue大佬,請忽略小弟的愚見

  • 列表進入詳情頁的傳參問題。
  • 本地開發環境請求服務器接口跨域的問題
  • axios封裝和api接口的統一管理
  • UI庫的按需加載
  • 如何優雅的只在當前頁面中覆蓋ui庫中組件的樣式
  • 定時器問題
  • rem文件的導入問題
  • Vue-Awesome-Swiper基本能解決你所有的輪播需求
  • 打包后生成很大的.map文件的問題
  • fastClick的300ms延遲解決方案
  • 組件中寫選項的順序

2.列表進入詳情頁傳參問題

例如商品列表頁面前往商品詳情頁面,需要傳一個商品id;

  1. <router-link :to="{path: 'detail', query: {id: 1}}">前往detail頁面</router-link> 

c頁面的路徑為 http://localhost:8080/#/detail?id=1 ,可以看到傳了一個參數 id=1 ,并且就算刷新頁面id也還會存在。此時在c頁面可以通過id來獲取對應的詳情數據,獲取id的方式是 this.$route.query.id vue傳參方式有:query、params+動態路由傳參。

vue傳參方式有:query、params+動態路由傳參。說下兩者的區別:

  • query通過 path 切換路由,params通過 name 切換路由
  1. // query通過path切換路由 
  2. <router-link :to="{path: 'Detail', query: { id: 1 }}">前往Detail頁面</router-link> 
  3. // params通過name切換路由 
  4. <router-link :to="{name: 'Detail', params: { id: 1 }}">前往Detail頁面</router-link> 
  • query通過 this.$route.query 來接收參數,params通過 this.$route.params 來接收參數。
  1. // query通過this.$route.query接收參數 
  2. created () { 
  3.     const id = this.$route.query.id; 
  4.  
  5. // params通過this.$route.params來接收參數 
  6. created () { 
  7.     const id = this.$route.params.id; 
  • query傳參的url展現方式: /detail?id=1&user=123&identity=1&更多參數 params+動態路由的url方式: /detail/123
  • params動態路由傳參,一定要在路由中定義參數,然后在路由跳轉的時候必須要加上參數,否則就是空白頁面
  1.     path: '/detail/:id'
  2.     name: 'Detail'
  3.     component: Detail 
  4. }, 

注意,params傳參時,如果沒有在路由中定義參數,也是可以傳過去的,同時也能接收到,但是一旦刷新頁面,這個參數就不存在了。這對于需要依賴參數進行某些操作的行為是行不通的,因為你總不可能要求用戶不能刷新頁面吧。例如:

  1. // 定義的路由中,只定義一個id參數 
  2.     path: 'detail/:id'
  3.     name: 'Detail'
  4.     components: Detail 
  5.  
  6. // template中的路由傳參, 
  7. // 傳了一個id參數和一個token參數 
  8. // id是在路由中已經定義的參數,而token沒有定義 
  9. <router-link :to="{name: 'Detail', params: { id: 1, token: '123456' }}">前往Detail頁面</router-link> 
  10.  
  11. // 在詳情頁接收 
  12. created () { 
  13.     // 以下都可以正常獲取到 
  14.     // 但是頁面刷新后,id依然可以獲取,而token此時就不存在了 
  15.     const id = this.$route.params.id; 
  16.     const token = this.$route.params.token; 

3.本地開發環境請求服務器接口跨域的問題 

 

 

 

 

上面的這個報錯大家都不會陌生,報錯是說沒有訪問權限(跨域問題)。本地開發項目請求服務器接口的時候,因為客戶端的同源策略,導致了跨域的問題。下面先演示一個沒有配置允許本地跨域的的情況: 

 

 

 

 

可以看到,此時我們點擊獲取數據,瀏覽器提示我們跨域了。所以我們訪問不到數據。那么接下來我們演示設置允許跨域后的數據獲取情況:  

 

 

 

 

我們在1出設置了允許本地跨域,在2處,要注意我們訪問接口時,寫的是 /api ,此處的 /api 指代的就是我們要請求的接口域名。如果我們不想每次接口都帶上 /api ,可以更改axios的默認配置 axios.defaults.baseURL = '/api'; 這樣,我們請求接口就可以直接 this.$axios.get('app.php?m=App&c=Index&a=index') ,很簡單有木有。此時如果你在 network 中查看 xhr 請求,你會發現顯示的是 localhost:8080/api 的請求地址。這樣沒什么大驚小怪的,代理而已: 

 

 

 

 

好了,最后附上proxyTable的代碼:

  1. proxyTable: { 
  2.       // 用‘/api’開頭,代理所有請求到目標服務器 
  3.       '/api': { 
  4.         target: 'http://jsonplaceholder.typicode.com', // 接口域名 
  5.         changeOrigin: true// 是否啟用跨域 
  6.         pathRewrite: { // 
  7.           '^/api''' 
  8.         } 
  9.       } 

注意:配置好后一定要關閉原來的server,重新 npm run dev 啟動項目。不然無效。

axios的封裝,主要是用來幫我們進行請求的攔截和響應的攔截。在請求的攔截中我們可以攜帶userToken,post請求頭、qs對post提交數據的序列化等。在響應的攔截中,我們可以進行根據狀態碼來進行錯誤的統一處理等等。axios接口的統一管理,是做項目時必須的流程。這樣可以方便我們管理我們的接口,在接口更新時我們不必再返回到我們的業務代碼中去修改接口。

4.UI庫的按需加載

為什么要使用按需加載的方式而不是一次性全部引入,原因就不多說了。這里以vant的按需加載為例,演示vue中ui庫怎樣進行按需加載:

  • 安裝: cnpm i vant -S
  • 安裝 babel-plugin-import 插件使其按需加載: cnpm i babel-plugin-import -D
  • 在 .babelrc文件中中添加插件配置 :
  1. libraryDirectory { 
  2.      
  3.     "plugins": [ 
  4.         // 這里是原來的代碼部分 
  5.         // ………… 
  6.  
  7.         // 這里是要我們配置的代碼 
  8.         ["import"
  9.             { 
  10.                 "libraryName""vant"
  11.                 "libraryDirectory""es"
  12.                 "style"true 
  13.             } 
  14.         ] 
  15.     ] 
  • 在main.js中按需加載你需要的插件:
  1. // 按需引入vant組件 
  2. import { 
  3.     DatetimePicker, 
  4.     Button, 
  5.     List 
  6. } from 'vant'
  • 使用組件:
  1. // 使用vant組件 
  2. Vue.use(DatetimePicker) 
  3.     .use(Button) 
  4.     .use(List); 
  • 最后在在頁面中使用:
  1. <van-button type="primary">按鈕</van-button> 

ps:出來 vant 庫外,像 antiUi 、 elementUi 等,很多ui庫都支持按需加載,可以去看文檔,上面都會有提到。基本都是通過安裝babel-plugin-import插件來支持按需加載的,使用方式與vant的如出一轍,可以去用一下。

5.如何優雅的只在當前頁面中覆蓋ui庫中組件的樣式

首先我們vue文件的樣式都是寫在 <style lang="less" scoped></style> 標簽中的,加scoped是為了使得樣式只在當前頁面有效。那么問題來了,看圖:  

 

 

 

 

我們正常寫的所有樣式,都會被加上[data-v-23d425f8]這個屬性(如1所示),但是第三方組件內部的標簽并沒有編譯為附帶[data-v-23d425f8]這個屬性。所以,我們想修改組件的樣式,就沒轍了。怎么辦呢,有些小伙伴給第三方組件寫個class,然后在一個公共的css文件中或者在當前頁面再寫一個沒有socped屬性的style標簽,然后直接在里面修改第三方組件的樣式。這樣不失為一個方法,但是存在全局污染和命名沖突的問題。約定特定的命名方式,可以避免命名沖突。但是還是不夠優雅。作為一名優(  )秀(  )的(  )前(  )端(  ),怎么能允許這種情況出現呢?好了,下面說下優雅的解決方式:通過深度選擇器解決。例如修改上圖中組件里的van-ellipsis類的樣式,可以這樣做:

  1. .van-tabs /deep/ .van-ellipsis { color: blue}; 

編譯后的結果就是: 

 

 

 

 

這樣就不會給 van-ellipsis 也添加 [data-v-23d425f8] 屬性了。至此你可以愉快的修改第三方組件的樣式了。當然了這里的深度選擇器 /deep/ 是因為我用的 less 語言,如果你沒有使用 less/sass 等,可以用 >>> 符號。更多的關于深度選擇器的內容,在文章后面有介紹。

6.定時器問題

我在a頁面寫一個定時,讓他每秒鐘打印一個1,然后跳轉到b頁面,此時可以看到,定時器依然在執行。這樣是非常消耗性能的。如下圖所示: 

 

 

 

 

解決方法1

首先我在data函數里面進行定義定時器名稱:

  1. data() { 
  2.     return { 
  3.         timer: null  // 定時器名稱 
  4.     } 
  5. }, 

然后這樣使用定時器:

  1. this.timer = (() => { 
  2.     // 某些操作 
  3. }, 1000

最后在beforeDestroy()生命周期內清除定時器:

  1. beforeDestroy() { 
  2.     clearInterval(this.timer); 
  3.     this.timer = null

方案1有兩點不好的地方,引用尤大的話來說就是:

  1. timer 

解決方案2

該方法是通過$once這個事件偵聽器器在定義完定時器之后的位置來清除定時器。以下是完整代碼:

  1. const timer = setInterval(() =>{ 
  2.     // 某些定時器操作 
  3. }, 500); 
  4. // 通過$once來監聽定時器,在beforeDestroy鉤子可以被清除。 
  5. this.$once('hook:beforeDestroy', () => { 
  6.     clearInterval(timer); 
  7. }) 

方案2要感謝@zzx18023在評論區提供出的解決方案。類似于其他需要在當前頁面使用,離開需要銷毀的組件(例如一些第三方庫的picker組件等等),都可以使用此方式來解決離開后以后在背后運行的問題。綜合來說,我們更推薦使用 方案2,使得代碼可讀性更強,一目了然 。如果不清楚once、on、$off的使用,這里送上官網的地址教程,在程序化的事件偵聽器那里: https:// cn.vuejs.org/v2/guide/c omponents-edge-cases.html#%E7%A8%8B%E5%BA%8F%E5%8C%96%E7%9A%84%E4%BA%8B%E4%BB%B6%E4%BE%A6%E5%90%AC%E5%99%A8 。

7.rem文件的導入問題

我們在做手機端時,適配是必須要處理的一個問題。例如,我們處理適配的方案就是通過寫一個rem.js,原理很簡單,就是根據網頁尺寸計算html的font-size大小,基本上小伙伴們都知道,這里直接附上代碼,不多做介紹。

  1. (function(c, d) { 
  2.   var e = document.documentElement || document.body, 
  3.     a = "orientationchange" in window ? "orientationchange" : "resize"
  4.     b = function() { 
  5.       var f = e.clientWidth; 
  6.       e.style.fontSize = f >= 750 ? "100px" : 100 * (f / 750) + "px"
  7.     }; 
  8.   b(); 
  9.   c.addEventListener(a, b, false); 
  10. })(window); 

這里說下怎么引入的問題,很簡單。在main.js中,直接 import './config/rem' 導入即可。import的路徑根據你的文件路徑去填寫。

8.Vue-Awesome-Swiper基本能解決你所有的輪播需求

在我們使用的很多ui庫(vant、antiUi、elementUi等)中,都有輪播組件,對于普通的輪播效果足夠了。但是,某些時候,我們的輪播效果可能比較炫,這時候ui庫中的輪播可能就有些力不從心了。當然,如果技術和時間上都還可以的話,可以自己造個比較炫的輪子.這里我說一下 vue-awesome-swiper 這個輪播組件,真的非常強大,基本可以滿足我們的輪播需求。swiper相信很多人都用過,很好用,也很方便我們二次開發,定制我們需要的輪播效果。vue-awesome-swiper組件實質上基于swiper的,或者說就是能在vue中跑的 swiper 。下面說下怎么使用:

  1. cnpm install vue-awesome-swiper --save 

 

  1. // 引入組件 
  2. import 'swiper/dist/css/swiper.css' 
  3. import { swiper, swiperSlide } from 'vue-awesome-swiper' 
  4.  
  5. // 在components中注冊組件 
  6. components: { 
  7.     swiper, 
  8.     swiperSlide 
  9.  
  10. // template中使用輪播 
  11. // ref是當前輪播 
  12. // callback是回調 
  13. // 更多參數用法,請參考文檔 
  14. <swiper :options="swiperOption" ref="mySwiper" @someSwiperEvent="callback"
  15.     <!-- slides --> 
  16.     <swiper-slide><div class="item">1</div></swiper-slide> 
  17.     <swiper-slide><div class="item">2</div></swiper-slide> 
  18.     <swiper-slide><div class="item">3</div></swiper-slide> 
  19.            
  20.     <!-- Optional controls --> 
  21.     <div class="swiper-pagination"  slot="pagination"></div> 
  22.     <div class="swiper-button-prev" slot="button-prev"></div> 
  23.     <div class="swiper-button-next" slot="button-next"></div> 
  24.     <div class="swiper-scrollbar"   slot="scrollbar"></div> 
  25. </swiper> 
  26. // 參數要寫在data中 
  27. data() { 
  28.     return { 
  29.         // swiper輪播的參數 
  30.         swiperOption: { 
  31.             // 滾動條 
  32.             scrollbar: { 
  33.                 el: '.swiper-scrollbar'
  34.             }, 
  35.             // 上一張,下一張 
  36.             navigation: { 
  37.                 nextEl: '.swiper-button-next'
  38.                 prevEl: '.swiper-button-prev'
  39.             }, 
  40.             // 其他參數………… 
  41.         } 
  42.     } 
  43. }, 

swiper需要配置哪些功能需求,自己根據文檔進行增加或者刪減。附上文檔:npm文檔,swiper3.0/4.0文檔,更多用法,請參考文檔說明。

9.打包后生成很大的.map文件的問題

項目打包后,代碼都是經過壓縮加密的,如果運行時報錯,輸出的錯誤信息無法準確得知是哪里的代碼報錯。 而生成的.map后綴的文件,就可以像未加密的代碼一樣,準確的輸出是哪一行哪一列有錯可以通過設置來不生成該類文件。但是我們在生成環境是不需要.map文件的,所以可以在打包時不生成這些文件:在 config/index.js 文件中,設置 productionSourceMap: false, 就可以不生成 .map 文件  

 

 

 

 

10.fastClick的300ms延遲解決方案

開發移動端項目,點擊事件會有300ms延遲的問題。至于為什么會有這個問題,請自行百度即可。這里只說下常見的解決思路,不管vue項目還是jq項目,都可以使用 fastClick 解決。安裝 fastClick :

  1. cnpm install fastclick -S 

在main.js中引入fastClick和初始化:

  1. import FastClick from 'fastclick'// 引入插件 
  2. FastClick.attach(document.body); // 使用 fastclick 

11.組件中寫選項的順序

為什么選項要有統一的書寫順序呢?很簡單,就是要將選擇和認知成本最小化。

    • 副作用 (觸發組件外的影響)
      • el
    • 全局感知 (要求組件以外的知識)
      • name
      • parent
    • 組件類型 (更改組件的類型)
      • functional
    • 模板修改器 (改變模板的編譯方式)
  1. delimiters 
  2. comments 
  • 模板依賴 (模板內使用的資源)
  1. components 
  2. directives 
  3. filters 
    • 組合 (向選項里合并屬性)
  1. extends 
  2. mixins 
    • 接口 (組件的接口)
      • inheritAttrs
      • model
      • props / propsData
    • 本地狀態 (本地的響應式屬性)
  1. data 
  2. computed 
    • 事件 (通過響應式事件觸發的回調)
  1. beforeCreate 
  2. created 
  3. beforeMount 
  4. mounted 
  5. beforeUpdate 
  6. updated 
  7. activated 
  8. deactivated 
  9. beforeDestroy 
  10. destroyed 
  11. watch 
  • 非響應式的屬性 (不依賴響應系統的實例屬性)
    • methods
  • 渲染 (組件輸出的聲明式描述)
    • template / render
    • renderError

 

 

責任編輯:張燕妮 來源: 知乎
相關推薦

2022-08-01 09:43:19

程序員Googlefacebook

2025-11-11 03:00:00

2018-11-01 15:20:17

前端程序員編程語言

2020-08-05 07:53:53

程序員網站技術

2025-03-31 03:00:05

2019-12-03 10:04:18

程序員招聘開發

2021-10-18 21:41:10

Go程序員 Defer

2023-11-13 08:34:01

Java編程習慣

2018-08-02 17:00:15

Vue.js學習iOS開發

2012-06-08 09:57:25

2013-08-20 09:33:59

程序員

2017-11-13 20:27:09

程序員月薪技術

2016-09-25 22:13:11

程序員代碼編碼

2022-07-15 08:20:54

Java基礎知識

2015-11-04 10:30:06

前端文藝范程序員

2015-11-03 15:17:28

前端程序員特色

2015-12-04 09:33:15

程序員前端演進史

2022-08-08 15:45:44

JavaPromise前端

2018-07-17 09:08:55

程序員技能區塊鏈

2012-02-23 15:02:46

程序員
點贊
收藏

51CTO技術棧公眾號

97精品人妻一区二区三区香蕉 | 亚洲狼人精品一区二区三区| 亚洲成人1234| 国产欧美高清在线| 成年人黄视频在线观看| 成人av电影免费观看| 国产精品www色诱视频| 青青操视频在线播放| 亚洲最好看的视频| 欧美一级欧美三级| 久久久久久久久久久免费视频| 老司机在线视频二区| 99久久国产综合精品色伊| 国产欧美日韩精品丝袜高跟鞋| 精品无码人妻一区二区三区| 成久久久网站| 亚洲精品xxx| 操人视频免费看| 日韩精品免费观看视频| 香蕉乱码成人久久天堂爱免费| 亚洲v国产v| 日本成人一区二区三区| 国产福利91精品一区二区三区| 国产精品黄视频| 国产午夜精品无码| 亚洲精品成人影院| 这里只有精品久久| 插吧插吧综合网| 一区二区在线视频观看| 欧美嫩在线观看| 少妇激情一区二区三区| 美女搞黄视频在线观看| 亚洲一区二区三区四区在线免费观看| 亚洲无玛一区| 大胆av不用播放器在线播放| 91丨九色丨尤物| 国产精品久久久久久久小唯西川| 国产男男gay体育生白袜| 蜜臀av一级做a爰片久久| 2019中文字幕全在线观看| 久久中文字幕无码| 国内自拍视频一区二区三区| 欧美成人黑人xx视频免费观看| 青青青视频在线播放| 国产成人ay| 亚洲视频777| 伊人网伊人影院| 久久99高清| 一本色道久久综合亚洲精品小说| 男生草女生视频| 红桃成人av在线播放| 亚洲深夜福利网站| 日本免费www| 日韩精品一区二区三区免费观影| 国产一区二区美女视频| 成人做爰69片免网站| 日韩精品dvd| 正在播放亚洲1区| 黄大色黄女片18免费| 成人一区二区| 久久伊人免费视频| 久久免费少妇高潮99精品| 国内精品久久久久国产盗摄免费观看完整版| 久久影院中文字幕| 免费一级a毛片夜夜看| 亚洲高清资源| 欧美亚洲免费电影| 在线免费一区二区| 国产在线视视频有精品| 99在线观看| 日韩中文字幕观看| 久久综合久色欧美综合狠狠| 日本黄网免费一区二区精品| 日本在线看片免费人成视1000| 亚洲欧洲精品成人久久奇米网| 成人性做爰片免费视频| ririsao久久精品一区| 欧美性生交大片免费| 我要看一级黄色大片| 成人在线日韩| 日韩精品中文字幕久久臀| 天天摸日日摸狠狠添| 欧美激情偷拍| 欧美伊久线香蕉线新在线| 中文精品久久久久人妻不卡| 国产精品一区二区免费不卡 | 国产va免费精品高清在线| 中文字幕一区二区免费| 国产一区二区三区av电影| 国产一区精品视频| 在线激情网站| 精品久久久久久久久久ntr影视| 亚洲精品一二三四五区| 中文字幕综合| 亚洲精品一区中文字幕乱码| 最新av电影网站| 一区二区日韩免费看| 成人国产精品一区二区| 午夜视频在线免费播放| 亚洲色图制服诱惑| 精品视频无码一区二区三区| 日本少妇精品亚洲第一区| 亚洲女同性videos| 久一视频在线观看| 美女性感视频久久| 久久精品国产理论片免费| 免费黄网在线观看| 一本大道久久a久久综合婷婷| xxx中文字幕| 日韩欧美精品| 国产aaa精品| 日韩在线视频免费| 一区二区三区免费看视频| youjizzxxxx18| 亚洲精品**不卡在线播he| 久久国产精品亚洲| 一本一道精品欧美中文字幕| 91一区二区三区在线播放| 日本黄网站色大片免费观看| 成人午夜亚洲| 亚洲小视频在线观看| 精品成人久久久| 成人激情黄色小说| 日韩精品一区二区在线视频| 国产电影一区| 日韩中文在线中文网三级| 成人毛片在线播放| av激情综合网| 日韩网站在线免费观看| 一区二区三区免费在线看| 久久精品福利视频| 888奇米影视| 国产精品久久久久久福利一牛影视| 欧美色图色综合| 欧美三级电影在线| 国内外成人免费激情在线视频网站| 精品久久国产视频| 一区二区三区中文字幕电影 | 国产字幕在线观看| 久久亚洲影视婷婷| 欧美在线观看成人| 无码日韩精品一区二区免费| 中文字幕 91| 午夜精品一区| 欧美探花视频资源| 在线观看国产精品一区| 久久精品综合| 日韩妆和欧美的一区二区| 欧美xxx视频| 亚洲网站视频福利| 最近免费中文字幕大全免费版视频| 99re这里只有精品6| 欧洲黄色一级视频| 九九亚洲精品| 国产精品高潮粉嫩av| 成人动漫在线播放| 欧美日韩国产在线播放网站| 婷婷社区五月天| 国产精品一区三区| 成人免费观看cn| 中文精品一区二区| 国产精品激情av在线播放| 免费大片在线观看www| 91精品久久久久久久91蜜桃| 黄色一级大片在线免费观看| 成人永久aaa| 日韩av资源在线| 日本道不卡免费一区| 91亚洲国产成人精品性色| 欧美家庭影院| 精品无码久久久久久国产| 狠狠狠狠狠狠狠| 《视频一区视频二区| 美女流白浆视频| 亚洲一区日韩在线| 亚洲欧美丝袜| 成人福利一区| 国产99在线|中文| 成人日日夜夜| 亚洲免费精彩视频| 亚洲一级av毛片| 亚洲国产综合91精品麻豆| 久久精品国产亚洲av麻豆| 精品中文av资源站在线观看| 久久久久99精品成人片| 国产精品免费99久久久| 91最新在线免费观看| 国产资源在线观看入口av| 中文字幕av日韩| 成人黄色在线观看视频| 色av一区二区| 久久久久久久9999| 欧美国产日韩a欧美在线观看| 久久久久亚洲av片无码v| 免费在线亚洲| 喜爱夜蒲2在线| 欧美一二区在线观看| 鬼打鬼之黄金道士1992林正英| 成人啊v在线| 国产69精品99久久久久久宅男| 9191在线| 日韩精品欧美国产精品忘忧草| 国产露脸国语对白在线| 色综合久久综合| 国产污片在线观看| 亚洲私人黄色宅男| 精品人妻一区二区三区蜜桃视频| 国产suv精品一区二区6| 孩娇小videos精品| 亚洲一区二区免费看| 青草网在线观看| 亚洲视频在线免费| 欧美色老头old∨ideo| 国产精品国产三级国产传播| 97久久精品人人澡人人爽| 一级黄色片在线免费观看| 久久精品一本| www.com毛片| 国产精品地址| 国产免费xxx| 日韩一区三区| 日韩福利在线| 啪啪亚洲精品| 欧美激情国产日韩| 老司机在线精品视频| 91香蕉国产在线观看| 日本成人在线网站| 国产精品久久久精品| 345成人影院| 69视频在线播放| 国产在线看片免费视频在线观看| 欧美激情女人20p| 三级网站视频在在线播放| 久久伊人精品天天| 久久久久久国产精品免费无遮挡| 在线播放国产一区二区三区| 国产三级在线| 国产亚洲精品久久| 国产区高清在线| 伊人激情综合网| 99精品老司机免费视频| 一本一本久久a久久精品综合小说| 嫩草在线播放| 日韩激情视频在线| 色视频免费在线观看| 日韩精品中文字幕视频在线| 青青草观看免费视频在线| 国产婷婷色综合av蜜臀av| 日韩二区三区| 精品视频偷偷看在线观看| 欧美少妇另类| 亚洲色图五月天| 成人在线播放视频| 色老头一区二区三区在线观看| 在线免费看黄网站| 久久精品视频免费播放| 亚洲丝袜精品| 午夜精品美女自拍福到在线| 久草在线资源站手机版| 庆余年2免费日韩剧观看大牛| 女生影院久久| 国产欧美亚洲精品| 无码国模国产在线观看| 久久精品国产第一区二区三区最新章节 | 成人中文视频| 一本色道久久99精品综合| 午夜久久免费观看| 精品少妇人欧美激情在线观看| 在线一区免费观看| 亚洲综合在线网站| 国产最新精品免费| 无码成人精品区在线观看| xf在线a精品一区二区视频网站| 中文字幕被公侵犯的漂亮人妻| 国产精品欧美精品| 精品深夜av无码一区二区老年| 欧美日韩一区二区三区| 中文在线观看av| 精品少妇一区二区三区免费观看 | 不卡在线视频中文字幕| 野外性满足hd| 最好看的中文字幕久久| 国产污污视频在线观看| 欧美日韩一区二区欧美激情| av免费在线观看不卡| 国产视频综合在线| 国产色在线观看| 欧美专区在线播放| 成人噜噜噜噜| 欧美激情一区二区三区在线视频| 久久综合电影| ww国产内射精品后入国产| 久久精品国产免费看久久精品| 亚洲天堂av网站| 中文字幕成人av| 国产精品第9页| 欧美精品1区2区3区| 深夜福利免费在线观看| 久久久精品一区二区三区| av综合电影网站| 99se婷婷在线视频观看| 不卡一区综合视频| 久久国产精品网| 国模大尺度一区二区三区| 波多野结衣一二三区| 亚洲欧美自拍偷拍| 亚洲不卡在线视频| 精品国精品国产| 毛片在线不卡| 国产精品美女主播| 人体久久天天| 国产亚洲黄色片| 狠狠色丁香久久婷婷综合丁香| 97人妻精品一区二区三区免| 亚洲欧美激情在线| 中文字幕日韩三级| 亚洲女人天堂网| 九色porny丨国产首页在线| 91在线视频一区| 日韩精品欧美| 免费观看成人网| 久久久久亚洲蜜桃| 欧美日韩精品区| 精品乱码亚洲一区二区不卡| 超碰超碰在线| 91久久精品国产| 日韩欧美网址| 色噜噜狠狠一区二区| 欧美国产精品中文字幕| 日韩熟女一区二区| 精品在线欧美视频| 欧美aa在线| 久精品国产欧美| av不卡在线| 一级特黄a大片免费| 亚洲国产wwwccc36天堂| 亚洲av无码国产精品永久一区 | 欧美日韩国产观看视频| 国产精品久久精品视| 国产精品多人| 亚洲成年人av| 性欧美大战久久久久久久久| 好吊视频一区二区三区| 欧美精品18videos性欧| 国产精品自在线拍| 免费无码毛片一区二三区| 成人精品视频网站| 日本少妇bbwbbw精品| 亚洲精品suv精品一区二区| 午夜不卡影院| 欧美精品一区三区在线观看| 久久一二三四| 黄色三级生活片| 欧美日本一区二区三区四区| 久久国产精品一区| 成人av资源网| 中文一区二区| 中国女人特级毛片| 欧美日韩视频一区二区| 久草免费在线观看| 国产高清一区视频| 亚洲女同在线| 精品亚洲aⅴ无码一区二区三区| 欧美精品1区2区3区| 欧洲在线视频| 欧美高清视频一区| 六月丁香综合在线视频| 久久久久久久国产精品毛片| 亚洲丁香久久久| 91精品影视| 国产对白在线播放| 成人黄色777网| 无码人妻丰满熟妇奶水区码| 最新国产成人av网站网址麻豆| 精品中文字幕一区二区三区四区 | www.97视频| 精品欧美一区二区三区精品久久| 免费在线小视频| 亚洲午夜精品久久久久久浪潮| 国产高清亚洲一区| 欧美性猛交bbbbb精品| 精品国产欧美一区二区五十路| 18国产精品| xxxx一级片| 五月婷婷激情综合| 欧美成人性生活视频| 国产一区二区三区免费不卡| 免费av成人在线| 国产污视频在线观看| 日韩一区视频在线| 日本欧美三级| 交换做爰国语对白| 色94色欧美sute亚洲线路二| 午夜小视频在线观看| 日本高清一区| 成人av网址在线观看| 91久久国语露脸精品国产高跟| 98视频在线噜噜噜国产| 亚洲久久久久| 山东少妇露脸刺激对白在线|