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

建立和維護大型 Vue.js 項目的 10個優秀實踐

開發 前端
我最近寫了一篇文章,介紹有關Vue.js中的插槽您需要了解的一些重要事項。它著重說明插槽如何使您的組件更可重用且更易于維護,以及為什么要使用它們。

這是我在使用大型代碼庫進行 Vue 項目時開發的最佳實踐。這些技巧將幫助您開發更有效的代碼,更易于維護和共享。

今年的自由職業生涯中,我有機會從事一些大型Vue應用程序的工作。我所談論的項目有超過12個Vuex 存儲,大量組件(有時數百個)和許多視圖(頁面)。實際上,這對我來說是非常有意義的經歷,因為我發現了許多有趣的模式來使代碼可擴展。我還必須修復一些導致著名的意大利面條代碼難題的錯誤做法。

因此,今天,我將與您分享10個最佳實踐,如果您要處理大量的代碼庫,我建議您遵循這些最佳實踐。

1.使用插槽(slot)使組件更易于理解并且功能更強大

我最近寫了一篇文章,介紹有關Vue.js中的插槽您需要了解的一些重要事項。它著重說明插槽如何使您的組件更可重用且更易于維護,以及為什么要使用它們。

但是,這與大型Vue.js項目有什么關系?一圖勝千言,所以我將為您畫一張圖片,這是我第一次后悔不使用它們。

有一天,我只需要創建一個彈出窗口。乍一看,沒有什么真正復雜的,只是包括標題,描述和一些按鈕。所以我要做的就是把所有東西都當作屬性。最后,我用了三個屬性來定制組件,當人們單擊按鈕時會發出一個事件。十分簡單!

但是,隨著項目的不斷發展,團隊要求我們在其中顯示許多其他新內容:表單字段,不同的按鈕(取決于顯示在哪個頁面上),卡片,頁腳和列表。我發現,如果我繼續使用屬性來使這個組件不斷擴展,似乎也可以。但是上帝,我錯了!該組件很快變得太復雜了,以至于無法理解,因為它包含了無數的子組件,使用了太多的屬性并發出了大量事件。我經歷了一種可怕的情況,當您在某處進行更改時,它最終以某種方式破壞了另一頁上的其他內容。我搞了個科學怪人的怪物,而不是一個可維護的組件!

但是,如果我從一開始就依賴插槽,情況可能會更好。最后,我重構了所有東西以提供這個小組件。易于維護,更快地理解并且可擴展性更高!

 

我的觀點是,根據經驗,由知道何時使用插槽的開發人員構建的項目確實對其未來的可維護性有很大的影響。這樣就可以減少發出事件的次數,使代碼更易于理解,并且可以在內部顯示所需的任何組件時提供更大的靈活性。

作為一個經驗法則,請記住,當最終在子組件的父組件中復制子組件的屬性時,應該從這一點開始使用插槽。

2.正確組織您的 Vuex 存儲

通常,新的 Vue.js 開發人員開始學習 Vuex,因為他們偶然發現了以下兩個問題:

  • 他們要么需要從樹結構中實際上相距太遠的另一個組件訪問給定組件的數據,要么
  • 他們需要數據在組件銷毀后繼續存在。

那是他們創建第一個 Vuex 存儲,了解模塊并開始在應用程序中進行組織的時候。

問題是創建模塊時沒有單一模式可以遵循。但是,我強烈建議您考慮如何組織它們。據我了解,大多數開發人員都喜歡按功能組織它們。例如:

  • 驗證碼
  • 博客
  • 收件箱
  • 設定

就我而言,我發現根據它們從API提取的數據模型來組織它們時更容易理解。例如:

  • 用戶數
  • 隊伍
  • 留言內容
  • 小部件
  • 文章

您選擇哪一個取決于您。唯一要記住的是,從長遠來看,組織良好的 Vuex 存儲將使團隊更具生產力。這也將使新來者更容易在加入您的團隊時就將您的想法圍繞您的代碼庫。

3.使用操作(Vuex Actions)進行 API 調用和提交數據

我的大多數API調用(如果不是全部)都在我的 Vuex 操作(vuex actions)中進行。您可能想知道:為什么這里調用更好?

僅僅因為它們中的大多數都提取了我需要在存儲(vuex store)中提交的數據。此外,它們提供了我真正喜歡的封裝性和可重用性。我這樣做還有其他一些原因:

  • 如果我需要在兩個不同的地方(例如博客和首頁)獲取文章的首頁,則可以使用正確的參數調用適當的調度程序。數據將被提取,提交和返回,除了調度程序調用外,沒有重復的代碼。
  • 如果我需要創建一些邏輯來避免在提取第一頁時提取它,則可以在一個地方進行。除了減少服務器上的負載之外,我還有信心它可以在任何地方使用。
  • 我可以在這些操作(vuex actions)中跟蹤我的大多數 Mixpanel 事件,從而使分析代碼庫真正易于維護。我確實有一些應用程序,其中所有 Mixpanel 調用都是在操作中單獨進行的。當我不必了解跟蹤什么不跟蹤什么以及何時發送時,這種方式工作會給我帶來有多大的快樂。

譯注: Mixpanel 是一家數據跟蹤和分析公司,允許開發者跟蹤各種用戶行為,比如用戶瀏覽的頁面數,iPhone 應用分析,Facebook 應用互動情況,以及 Email 分析。類似Firebase一樣的埋點分析工具。

4.使用 mapState,mapGetters,mapMutations 和 mapAction 簡化代碼庫

當您只需要訪問state/getter或在組件內部調用action/mutation時,通常無需創建多個計算屬性或方法。使用mapState,mapGetters,mapMutations和mapActions可以幫助你縮短你的代碼,通過分組來化繁為簡,從你存儲里模塊一個地方就能掌握全局。

 

  1. // NPM 
  2. import { mapState, mapGetters, mapActions, mapMutations } from "vuex"
  3. export default { 
  4.   computed: { 
  5.     // Accessing root properties 
  6.     ...mapState("my_module", ["property"]), 
  7.     // Accessing getters 
  8.     ...mapGetters("my_module", ["property"]), 
  9.     // Accessing non-root properties 
  10.     ...mapState("my_module", { 
  11.       property: state => state.object.nested.property 
  12.     }) 
  13.   }, 
  14.   methods: { 
  15.     // Accessing actions 
  16.     ...mapActions("my_module", ["myAction"]), 
  17.     // Accessing mutations 
  18.     ...mapMutations("my_module", ["myMutation"]) 
  19.   } 
  20. };  

Vuex官方文檔中提供了您在這些便捷幫助器上所需的所有信息。

5.使用 API 工廠

我通常喜歡創建一個this.$api可以在任何地方調用以獲取API端點的助手。在項目的根目錄下,我有一個api包含所有類的文件夾(請參閱下面的其中一個)。

 

  1. api 
  2. ├── auth.js 
  3. ├── notifications.js 
  4. └── teams.js  

每個節點都將其類別的所有端點分組。這是我在 Nuxt 應用程序中使用插件初始化此模式的方式(這與標準 Vue 應用程序中的過程非常相似)。

 

  1. // PROJECT: API 
  2. import Auth from "@/api/auth"
  3. import Teams from "@/api/teams"
  4. import Notifications from "@/api/notifications"
  5. export default (context, inject) => { 
  6.   if (process.client) { 
  7.     const token = localStorage.getItem("token"); 
  8.     // Set token when defined 
  9.     if (token) { 
  10.       context.$axios.setToken(token, "Bearer"); 
  11.     } 
  12.   } 
  13.   // Initialize API repositories 
  14.   const repositories = { 
  15.     auth: Auth(context.$axios), 
  16.     teams: Teams(context.$axios), 
  17.     notifications: Notifications(context.$axios) 
  18.   }; 
  19.   inject("api", repositories); 
  20. };  

 

  1. export default $axios => ({ 
  2.   forgotPassword(email) { 
  3.     return $axios.$post("/auth/password/forgot", { email }); 
  4.   }, 
  5.   login(email, password) { 
  6.     return $axios.$post("/auth/login", { email, password }); 
  7.   }, 
  8.   logout() { 
  9.     return $axios.$get("/auth/logout"); 
  10.   }, 
  11.   register(payload) { 
  12.     return $axios.$post("/auth/register", payload); 
  13.   } 
  14. }); 

現在,我可以簡單地在我的組件或 Vuex 操作中調用它們,如下所示:

 

  1. export default { 
  2.   methods: { 
  3.     onSubmit() { 
  4.       try { 
  5.         this.$api.auth.login(this.email, this.password); 
  6.       } catch (error) { 
  7.         console.error(error); 
  8.       } 
  9.     } 
  10.   } 
  11. };  

6.使用 $config 訪問您的環境變量(在模板中特別有用)

您的項目可能在某些文件中定義了一些全局配置變量:

 

  1. config 
  2. ├── development.json 
  3. └── production.json  

我喜歡通過this.$config助手快速訪問它們,尤其是當我在模板中時。與往常一樣,擴展Vue對象非常容易:

 

  1. // NPM 
  2. import Vue from "vue"
  3. // PROJECT: COMMONS 
  4. import development from "@/config/development.json"
  5. import production from "@/config/production.json"
  6. if (process.env.NODE_ENV === "production") { 
  7.   Vue.prototype.$config = Object.freeze(production); 
  8. else { 
  9.   Vue.prototype.$config = Object.freeze(development); 
  10. }  

7.遵循一個約定來寫提交注釋

隨著項目的發展,您將需要定期瀏覽組件的提交歷史記錄。如果您的團隊沒有遵循相同的約定來書寫他們的提交說明,那么將很難理解每個團隊成員的行為。

我總是使用并推薦Angular commit消息準則。在我從事的每個項目中,我都會遵循它,在許多情況下,其他團隊成員也會很快發現遵循它也更好。

遵循這些準則會導致更具可讀性的消息,從而在查看項目歷史記錄時更易于跟蹤提交。簡而言之,這是它的工作方式:

 

  1. git commit -am "<type>(<scope>): <subject>" 
  2. # Here are some samples 
  3. git commit -am "docs(changelog): update changelog to beta.5" 
  4. git commit -am "fix(release): need to depend on latest rxjs and zone.js" 

看看他們的README文件以了解更多約定。

8.始終在生產項目時凍結軟件包的版本

我知道...所有軟件包都應遵循語義版本控制規則。但實際情況是,其中一些并非如此。

為避免因您的一個依賴項在半夜醒來破壞了整個項目,鎖定所有軟件包的版本會使您的早晨工作壓力減輕。

它的意思很簡單:避免使用以^開頭的版本:

 

  1.   "name""my project"
  2.   "version""1.0.0"
  3.   "private"true
  4.   "dependencies": { 
  5.     "axios""0.19.0"
  6.     "imagemin-mozjpeg""8.0.0"
  7.     "imagemin-pngquant""8.0.0"
  8.     "imagemin-svgo""7.0.0"
  9.     "nuxt""2.8.1"
  10.   }, 
  11.   "devDependencies": { 
  12.     "autoprefixer""9.6.1"
  13.     "babel-eslint""10.0.2"
  14.     "eslint""6.1.0"
  15.     "eslint-friendly-formatter""4.0.1"
  16.     "eslint-loader""2.2.1"
  17.     "eslint-plugin-vue""5.2.3" 
  18.   } 
  19. }  

9.顯示大量數據時使用 Vue 虛擬滾動條

當您需要在給定頁面中顯示很多行或需要循環訪問大量數據時,您可能已經注意到該頁面的呈現速度很快。要解決此問題,可以使用vue-virtual-scoller。

  1. npm install vue-virtual-scroller 

它將僅渲染列表中的可見項,并重用組件和dom元素,以使其盡可能高效。它真的很容易使用,順滑得很!

  1. <template> 
  2.   <RecycleScroller 
  3.     class="scroller" 
  4.     :items="list" 
  5.     :item-size="32" 
  6.     key-field="id" 
  7.     v-slot="{ item }" 
  8.   > 
  9.     <div class="user"
  10.       {{ item.name }} 
  11.     </div> 
  12.   </RecycleScroller> 
  13. </template>  

10.跟蹤第三方程序包的大小

當很多人在同一個項目中工作時,如果沒有人關注它們,那么已安裝軟件包的數量會迅速增加,令人難以置信。為了避免您的應用程序變慢(尤其是在移動網絡變慢的情況下),我在Visual Studio Code中使用了導入費用包。這樣,我可以從編輯器中直接看到導入的模塊庫有多大,并且可以查看導入的模塊庫過大時出了什么問題。

例如,在最近的項目中,導入了整個 lodash 庫(壓縮后大約24kB)。問題在于,項目里僅僅使用cloneDeep 一個方法。通過在導入費用包中識別此問題后,我們通過以下方式解決了該問題:

 

  1. npm remove lodash  
  2. npm install lodash.clonedeep 

然后可以在需要的地方導入clonedeep函數:

  1. import cloneDeep from "lodash.clonedeep"

為了進一步優化,您還可以使用Webpack Bundle Analyzer軟件包通過交互式可縮放樹狀圖來可視化Webpack輸出文件的大小。

處理大型Vue代碼庫時,您還有其他最佳實踐嗎?請在下面的評論中告訴我,或者在Twitter @RifkiNada上與我聯系。

關于作者

娜達·里基(Nada Rifki)

[[426009]]

Nada 是一位 JavaScript 開發人員,他喜歡使用 UI 組件來創建具有出色 UX 的界面。她專門研究 Vue.js,喜歡分享任何可以幫助她的前端 Web 開發人員的東西。Nada還涉足數字營銷,舞蹈和中文領域。

責任編輯:未麗燕 來源: Segmentfault.com
相關推薦

2021-09-27 10:48:42

開發技能代碼

2020-08-30 14:32:57

Vue.jsJavaScript前端

2020-09-15 06:13:05

Vue.jsJavaScript框架

2015-12-08 09:13:05

開發維護Java項目

2020-09-16 14:39:13

ReactJavaScript框架

2019-10-11 09:59:55

開發者技能工具

2020-03-16 08:00:00

物聯網項目物聯網IOT

2018-04-04 10:32:13

前端JavascriptVue.js

2020-06-02 14:00:53

Vue.js組件Web開發

2020-10-10 07:14:08

前端項目斷點

2017-07-20 11:18:22

Vue.jsMVVMMVC

2019-11-05 17:10:19

Java開發編程語言

2020-10-27 06:56:53

IoT產品實踐

2023-06-29 00:19:51

2020-11-04 09:58:17

vue開發Github

2022-04-01 10:41:09

Vue.js開發工具

2019-04-01 19:38:28

Vue.jsJavascript前端

2019-11-20 10:32:39

云計算安全技術

2021-05-08 16:11:08

Java開發代碼

2024-12-26 08:00:38

點贊
收藏

51CTO技術棧公眾號

99久久亚洲精品日本无码| 欧美 日韩 成人| 91超碰在线播放| 91亚洲精华国产精华精华液| 国产成一区二区| 国产男女猛烈无遮挡在线喷水| 日韩中文字幕无砖| 日韩欧美中文字幕在线播放| 亚洲一区二区三区乱码| 黑人乱码一区二区三区av| 久久精品人人| 久久99精品久久久久久琪琪 | 新版的欧美在线视频| 国产精品美女久久久久av爽李琼 | 亚洲天堂2014| 久久riav| 超碰人人人人人人| 免费的成人av| 8x拔播拔播x8国产精品| 四虎影院中文字幕| 国产不卡av一区二区| 7777精品伊人久久久大香线蕉| 青青草视频在线免费播放| av资源在线观看免费高清| 不卡欧美aaaaa| 成人在线国产精品| 五月天中文字幕| 黄频在线免费观看| 黄av在线免费观看| 91亚洲永久精品| av资源站久久亚洲| 亚洲图片在线播放| 日本伊人色综合网| 欧美在线视频一区二区| 精品一区二区三区人妻| 91超碰成人| 综合136福利视频在线| 欧美特黄一区二区三区| 97久久综合区小说区图片区| 欧美一区二区三区视频在线观看| 黄色aaa级片| 最新欧美电影| 一本大道久久精品懂色aⅴ| 激情小视频网站| 国产乱妇乱子在线播视频播放网站| 成人欧美一区二区三区白人| 性高潮久久久久久久久| 第一页在线观看| 久久精品网站免费观看| 美女被啪啪一区二区| 天堂av手机版| 99久久精品国产一区| 国产一区免费在线| 性猛交xxxx| www成人在线观看| 欧美lavv| 成人18在线| 中文字幕 久热精品 视频在线 | 亚洲国产日韩欧美在线观看| 欧美最新精品| 欧美日韩午夜精品| 在线免费看污网站| 狂野欧美xxxx韩国少妇| 欧美哺乳videos| 99久久免费看精品国产一区| 日韩极品在线| 伊是香蕉大人久久| 肉色超薄丝袜脚交69xx图片| 亚洲欧美日韩高清在线| 欧美精品日韩三级| 色婷婷在线观看视频| 久久aⅴ国产紧身牛仔裤| 日韩女优人人人人射在线视频| 少妇又紧又色又爽又刺激视频| 麻豆国产91在线播放| 成人黄色在线播放| 亚洲成人久久精品| 99九九99九九九视频精品| 亚洲国产精品久久久久秋霞影院| 96久久精品| 欧美视频一二区| 26uuu国产一区二区三区| 三区精品视频观看| 一二三四区在线观看| 精品久久久久久久久久国产| 国产野外作爱视频播放| 欧美一级片网址| 亚洲精品美女在线观看播放| 精品日韩在线视频| 国内精品福利| 日韩美女视频免费看| 国产又粗又猛又爽| 99精品久久久久久| 亚洲色图自拍| av3级在线| 欧美日韩亚洲综合一区二区三区 | 国产黄色免费视频| 国产一区美女在线| 欧美高清视频一区二区三区在线观看| 97视频精彩视频在线观看| 亚洲精品欧美在线| 黄色av免费在线播放| 精品国产麻豆| 亚洲人成人99网站| 久久久无码精品亚洲国产| 裸体一区二区| 成人h在线播放| av在线免费一区| 亚洲国产乱码最新视频| 亚洲一级片网站| 日韩精品导航| 欧美激情二区三区| 91精品国产乱码久久久久| 91免费视频观看| 日韩成人三级视频| 久久久国产精品网站| 日韩av在线最新| 麻豆一区产品精品蜜桃的特点 | 国产在线视频一区| 韩国三级av在线免费观看| 亚洲图片欧美综合| 九九久久久久久| 波多野结衣一区| 2019日本中文字幕| 亚洲黄色一级大片| 成人免费一区二区三区视频 | 成人丝袜18视频在线观看| 一区二区日本伦理| 日韩国产网站| 亚洲欧美日韩国产成人| 日本一级黄色大片| 国产精品99久久久久久似苏梦涵| 午夜精品一区二区在线观看| 欧美办公室脚交xxxx| 亚洲成人av片| 国产主播在线观看| 国产 欧美在线| 久久91精品国产91久久跳| 精品国产乱码久久久久久郑州公司| 日本私人网站在线观看| 性做久久久久久免费观看欧美| 色男人天堂av| 久久久久国产| 国产日本欧美一区| 日韩精品黄色| 欧美日韩精品一区二区三区| 影音先锋制服丝袜| 日韩影院免费视频| 偷拍视频一区二区| 国产精品传媒麻豆hd| 中文欧美在线视频| 亚洲视频在线观看一区二区| 国产精品免费丝袜| 精品亚洲视频在线| 99热国内精品| 亚洲一区二区三区成人在线视频精品| 国产人成网在线播放va免费| 4hu四虎永久在线影院成人| 男人在线观看视频| 国产主播一区二区| 久久综合久久久久| 理论片一区二区在线| 911国产网站尤物在线观看| 神马电影在线观看| 欧美影院一区二区| 日本一级片免费| 丰满白嫩尤物一区二区| 777久久久精品| 色一情一区二区三区| 天堂美国久久| 国产精品二区三区| 亚洲精品成人图区| 日韩中文综合网| 不卡av中文字幕| 欧美日韩一二三四五区| 欧美激情久久久久久久| 国产精品影音先锋| 无码精品a∨在线观看中文| 国产精品日韩精品中文字幕| 国产精品日韩在线播放| 日本视频在线播放| 亚洲精品一区二区在线观看| 国产精品久久久久久人| 国产精品污污网站在线观看| 欧美熟妇另类久久久久久多毛| 精品9999| 亚洲欧美国产精品桃花| 日韩三级精品| 日韩美女av在线免费观看| 黄色在线播放网站| 亚洲精品动漫久久久久| 伊人精品在线视频| 亚洲成人精品影院| 美国美女黄色片| 国产a视频精品免费观看| 亚洲国产精品久久久久爰色欲| 天堂网在线观看国产精品| 久久久精品国产一区二区三区| 四虎精品一区二区免费| 97视频在线观看播放| 黄色视屏免费在线观看| 亚洲电影中文字幕| 一区二区的视频| 欧美特级www| 波多野结衣亚洲一区二区| 91在线视频观看| 精产国品一区二区三区| 日本vs亚洲vs韩国一区三区| 欧美一级视频免费看| 91精品国产自产拍在线观看蜜| 久久精品国产精品国产精品污 | 91成人免费在线| 日本一二三区视频| 亚洲色图欧洲色图婷婷| 国产精品无码久久久久久| 成人做爰69片免费看网站| 亚洲国产成人va在线观看麻豆| aⅴ色国产欧美| 在线观看成人免费| 日韩欧美视频专区| 欧美最大成人综合网| 久久久久久毛片免费看| 444亚洲人体| 国产精品3区| 国产精品自产拍高潮在线观看| 97se综合| 97超碰色婷婷| 超清av在线| 欧美激情第6页| 性欧美videoshd高清| 精品国内亚洲在观看18黄| melody高清在线观看| 亚洲人成五月天| 日韩欧美亚洲系列| 日韩精品中文字幕在线播放| 成人免费公开视频| 欧美成人精精品一区二区频| av av片在线看| 欧美一区二区免费视频| 国产又大又长又粗| 欧美精品一卡两卡| 欧美黄色小视频| 好吊色欧美一区二区三区| 噜噜噜久久,亚洲精品国产品| 欧美精品乱码久久久久久| 丰满熟女人妻一区二区三| 一本一道久久a久久精品综合蜜臀| 国产在线成人精品午夜| 午夜视频在线观看一区二区| 日本熟妇一区二区| 亚洲国产精品久久不卡毛片 | 亚洲一区二区三区精品在线| 欧美另类视频在线观看| 亚洲最新视频在线播放| 精品一区免费观看| 激情成人在线视频| 日日噜噜噜噜人人爽亚洲精品| 欧美日韩国产综合视频在线观看中文| 国产无遮挡又黄又爽在线观看| 亚洲成人综合网站| 日本天堂网在线| 91成人在线观看喷潮| 夜夜嗨av禁果av粉嫩avhd| 在线不卡a资源高清| 国产99视频在线| 精品99999| 欧美日韩在线精品一区二区三区激情综 | 久久视频在线免费观看| 黄色网页在线看| 久久久久日韩精品久久久男男 | 亚洲女人毛茸茸高潮| 久草这里只有精品视频| 免费不卡av网站| 成人激情校园春色| 国产吞精囗交久久久| 日本一区二区在线不卡| 无码黑人精品一区二区| 亚洲国产日日夜夜| 蜜臀精品一区二区三区| 欧美夫妻性生活| 亚洲精品无amm毛片| 亚洲欧美日韩在线一区| 日本中文字幕伦在线观看| 色综合久久中文字幕综合网小说| brazzers在线观看| 国产精品黄色av| 欧美一区在线观看视频| 乱一区二区三区在线播放| 欧美色网址大全| 日韩免费在线观看av| 男人的天堂亚洲| 四川一级毛毛片| 久久九九久久九九| 九九在线观看视频| 欧美亚洲图片小说| 内射无码专区久久亚洲| 在线观看精品国产视频| 国内在线视频| 国产精品偷伦视频免费观看国产 | 久久精品久久精品国产大片| 日韩欧美网址| 青青草国产精品视频| 蜜臀久久99精品久久久久宅男| 性猛交╳xxx乱大交| 久久久影院官网| 欧美色图亚洲视频| 欧美影院一区二区| 天堂a√中文在线| 美女黄色丝袜一区| 日本久久一区| 欧美亚洲国产免费| 日韩天堂av| 香蕉在线观看视频| 综合精品久久久| 中文字幕在线天堂| 日韩精品免费视频| 美女精品导航| 亚洲一区二区三区乱码aⅴ| 青青草国产成人a∨下载安卓| 国产婷婷一区二区三区| 国产99一区视频免费| 欧美美女性生活视频| 欧美色偷偷大香| 欧美成人免费| 57pao成人国产永久免费| **爰片久久毛片| 激情五月五月婷婷| 久久99精品国产麻豆不卡| 亚洲区自拍偷拍| 欧美性猛交xxxx乱大交蜜桃| 丰满少妇一级片| 欧美国产在线电影| 亚洲成人五区| 成人高清dvd| 国产又粗又猛又爽又黄91精品| 日本一道本视频| 欧美在线高清视频| 国产专区在线播放| 日本一本a高清免费不卡| 欧美日韩夜夜| 日本韩国欧美在线观看| av电影天堂一区二区在线观看| 18精品爽视频在线观看| 精品国产一区二区三区久久影院 | 永久看看免费大片| 亚洲欧美日韩国产另类专区| 91亚洲国产成人精品一区| 最新的欧美黄色| 日韩综合久久| 黄色一级视频播放| 懂色av中文一区二区三区| 久久丫精品久久丫| 亚洲国产日韩欧美综合久久| 欧美aaaaa性bbbbb小妇| 久久亚洲国产精品日日av夜夜| 美女久久一区| 欧美18—19性高清hd4k| 欧美色图第一页| av在线麻豆| 国产一区二区三区奇米久涩| 亚洲一区二区伦理| 免费黄色在线视频| 欧美在线观看视频一区二区| 久久精品视频免费看| 高清不卡日本v二区在线| 影音先锋亚洲电影| 国产精品成人一区二区三区电影毛片| 日本高清无吗v一区| 老司机在线看片网av| 99精品在线直播| 宅男噜噜噜66国产日韩在线观看| japanese中文字幕| 欧美在线视频全部完| 99自拍视频在线观看| 国内精品视频免费| 日韩高清不卡一区二区| 麻豆精品国产免费| 亚洲护士老师的毛茸茸最新章节| 97久久香蕉国产线看观看| 中文视频一区视频二区视频三区| 国产成人综合网站| 免费的毛片视频| 久久视频在线播放| 台湾佬综合网| 小明看看成人免费视频| 亚洲永久免费av| 国产女主播在线直播| 99久久精品无码一区二区毛片 | 在线观看免费版| 国产精品传媒毛片三区| 日韩av在线播放中文字幕| 日本精品人妻无码77777| 日韩精品在线影院| 国内不卡的一区二区三区中文字幕 | 91久久精品在线| 国产日韩欧美高清免费| 天天做夜夜爱爱爱| 精品在线观看国产| 日韩精品免费视频一区二区三区| wwwxxx黄色片|