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

前端如何修改組件庫源碼來封裝符合自己需求的組件?

開發 前端
產品中需要實現某項功能,常用的 elementui、antd 等組件庫中確實有差不多功能的組件。但實際上這些組件可能并不能滿足你的功能,或多或少都需要你去看看如何修改它才能滿足你的需求。

[[436888]]

 前端開發的同學們或許會遇到這樣的問題:產品中需要實現某項功能,常用的 elementui、antd 等組件庫中確實有差不多功能的組件。但實際上這些組件可能并不能滿足你的功能,或多或少都需要你去看看如何修改它才能滿足你的需求。

比如我曾遇到過 element-ui 中的「樹形控件」暴露出的參數沒有我需要的(獲取參數);或者是「對話框」組件我需要給它的 body 加上上下兩條 border 等(樣式修改);還有「級聯選擇器」的多選可搜索功能:需要修改級聯看板使它保持展開,且當子節點全部選中時,不展示全部子節點 tag 而只展示它的父節點 tag(源碼無此功能)。

例如,我需要的功能是左二(因為我不想選項過多時 tag 占得位置太大),而原組件如左一。我截了兩張圖對比:

關于組件庫可能要修改的地方,我將它們分為以下五類可供參考:

  •  樣式問題
  •  組件暴露的參數和方法不充分(源碼中存在)
  •  可利用部分功能,其余功能要自己開發封裝
  •  2+ 個組件之間的聯動,多合一
  •  完全沒有符合的組件

下面詳細說說這些問題,以及如何解決這些問題。如果有不滿足或更好的建議,歡迎指出。

1、組件樣式問題

當修改單個文件的樣式時,以 less 為例,如果你想要修改組件的樣式,可以使用 /deep/ 或 >>> 來深度選擇到你要修改的樣式(這能夠幫你省去一大串的類名)。 

  1. .dialog-wrapper {  
  2.     /deep/.el-dialog__body{  
  3.      border: solid 1px #999;  
  4.     }  

如果你要修改全局的樣式,第一種方法,你可以在全局樣式文件中寫樣式覆蓋,引入到 main.js 中即可全局生效。如下: 

  1. import "./assets/css/index.css"; 

第二,跟著組件庫提供的『自定義主題』教程修改,一般組件庫都會給出相關的教程。

2、組件暴露的參數和方法不充分

首先提出一個問題,你如何知道組件暴露的參數和方法不充分?其實答案很簡單:因為我看了組件庫的源碼。

當我們想要獲取組件的一個參數,首先是看文檔中提供了哪些 Attributes、Events、Methods。如果符合需求,直接拿來用就好。如果沒有你要的屬性和方法,請你先去看看源碼中提供了哪些東西沒有向外暴露出來的,但是我們能拿來用的。

舉個🌰,上述的「Cascader 級聯選擇器」,我想要在選中一個搜索的選項后不關閉看板。我在組件的 Events、Methods中沒有找到相關的方法控制看板展開,如下:

img

但當我去 github 上看該組件的源碼時,我發現 toggleDropDownVisible() 方法是控制看板展開的。于是我在外部用 $refs 直接調用組件里的這個方法就好了。圖片

具體調用方法如下,這樣即使方法沒有暴露出來,也可以調用它內部的方法: 

  1. <el-cascader  
  2.     ref="cascader" // ref獲取組件  
  3.     placeholder="試試搜索:指南"  
  4.     :options="options"  
  5.     :props="{ multiple: true }"  
  6.     filterable></el-cascader  
  7.     @visible-change="$refs.cascader.toggleDropDownVisible(true)"> // 調用組件及其方法 

3、可利用部分功能,其余功能要自己開發封裝

第三類其實我們用到的已經比較少了,畢竟現在的組件庫已經非常豐富了。但是這一步引起的思考確是很重要的,多看別人的源碼有助于提高自己封裝組件的水平。

當要用到一個組件,但從頭開發這個組件既復雜又耗時,而組件庫中這個組件需要再往上加一些功能就能為你所用時,你可以考慮把組件庫的代碼拿到自己本地,修改它。

第一步你需要將組件代碼瀏覽一遍,了解它的邏輯。看看你需要加什么代碼,如果在 vue 中,使用 computed、watch,或是修改 created、mounted、methods 就能完成你的功能,那么就大膽地嘗試。

舉個🌰

在 element-ui 中,它提供的多選可搜索級聯組件有一個問題:當用戶選中全部子節點時不會合并為顯示父節點。要想完成這個功能,在經歷過上述步驟一番探索后發現還是要修改源碼才能完成。于是我基于原本多選可搜索的級聯選擇器,進行以下優化:

  •  默認看到級聯看板展開,不會收起 
  1. @visible-change="blurCascader(true)" // 可觸發展開  
  2. mounted() {  
  3.     this.blurCascader(true)  
  4.  
  5. // 失焦后觸發展開級聯看板(默認失焦后關閉看板)  
  6. blurCascader() {  
  7.     this.$nextTick(() => {  
  8.         this.$refs.cascader.toggleDropDownVisible(true) // 調用組件內部未暴露的方法  
  9.     })  
  10. }, 
  •  搜索選中后展示級聯看板,并勾選搜索選中的節點 
  1. // 響應選中的節點,選中節點后關閉選擇看板,展示級聯看板  
  2. changecascader(e) {  
  3. this.$refs.cascader.handleDropdownLeave()  
  4. }, 
  •  當子級節點全部選中后,tag只展示一個父級節點,而不是全部子節點 
  1. // 獲取所有勾選的節點  
  2.    getPresetTags() {  
  3.      const tree = this.panel.menus[0]  
  4.      const result = []  
  5.      loop(tree)  
  6.      // 遞歸查找選中的節點  
  7.      function loop(tree = []) {  
  8.        for (let i = 0; i < tree.length; i++) {  
  9.          const child = tree[i]  
  10.          if (child.checked) {                // checked 狀態表示選中  
  11.            result.push({ ...child, closable: true })  
  12.          } else if (child.indeterminate) {   // indeterminate 狀態表示待定,是半選  
  13.            child.children && loop(child.children)  
  14.          }  
  15.        }  
  16.      }  
  17.      this.presentFormatTags = result // 得到可顯示的 tag  
  18.    }, 
  •  刪除節點

由于我修改了 tag 的展示,所以它的 deleteTag 事件也要重寫。 

  1. deleteTag(index, tag) {  
  2.       let _ = this  
  3.       if (tag && tag.hasChildren) {  
  4.        // 當刪除的節點是父節點時  
  5.         loop(tag.children)  
  6.         function loop(list) {  
  7.           for (let i = 0; i < list.length; i++) {  
  8.             if (list[i].hasChildren) {  
  9.               loop(list[i].children)  
  10.             } else {  
  11.               __.checkedValue = _.checkedValue.filter(n => n !== list[i].path)  
  12.               _.$emit('remove-tag', tag)  
  13.             }  
  14.           }  
  15.         }  
  16.       } else if (tag) {  
  17.       // 當刪除的是子節點時  
  18.         thisthis.checkedValue = this.checkedValue.filter((n, i) => n !== tag.path)  
  19.         this.$emit('remove-tag', tag)  
  20.       } else {  
  21.       // 當以回車鍵刪除時  
  22.         const temp = this.presentFormatTags[this.presentFormatTags.length - 1]  
  23.         temp && this.deleteTag(null, temp)  
  24.       }  
  25.       // 原本這個方法的代碼如下  
  26.       // const { checkedValue } = this  
  27.       // const val = checkedValue[index]  
  28.       // this.checkedValue = checkedValue.filter((n, i) => i !== index)  
  29.       // this.$emit('remove-tag', val) 
  30.     } 

其實修改組件庫代碼的過程并不難,主要是看懂它的邏輯,以及其中哪些東西是你可以用的。

上述組件的源碼可以在 GitHub[1] 查看。

4、2+ 個組件之間的聯動,多合一

到這一步,其實你已經翻越最難的大山了!而這里要說的多個組件之間的聯動其實已經處于優化用戶體驗的道路上了。思考一下,什么時候會用到多個組件之間的聯動呢?

其實場景有很多,例如將「Form 表單」、「Table 表格」和「Pagination 分頁」結合起來,封裝成一個組件,這樣在多表格的項目中直接使用就好了;

將 table 和 pagination 放到一個組件中: 

  1. <template lang="pug">  
  2. div  
  3.   .el-table  
  4.     template(v-for="(item, index) in columns" 
  5.       el-table-column(  
  6.         :prop="item.prop"  
  7.         :key="index"  
  8.         :label="item.label" 
  9.   el-pagination.pg-wrapper(  
  10.     layout="total, sizes, prev, pager, next, jumper"  
  11.     @size-change="handleSizeChange"  
  12.     @current-change="handleCurrentChange"  
  13.     :current-page="currentPage"  
  14.     :page-sizes="[10, 20, 50, 100]"  
  15.     :page-size="pagesize"  
  16.     :total="total"
  17.  </template> 

需要傳入的參數如下:列信息 columns、單頁數據量 pagesize、當前頁碼 currentPage、表格數據 tableData、數據總數 total、表單查詢的參數 query 等。 

  1. props: {  
  2.   // 列信息  
  3.   columns: {  
  4.     type: Array,  
  5.     default: [],  
  6.   }  
  7.   // 單頁數據量  
  8.   pagesize: {  
  9.     type: Number,  
  10.     default: 10, 
  11.   },  
  12.   // 當前頁碼  
  13.   currentPage: { 
  14.     type: Number,  
  15.     default: 1,  
  16.   },  
  17.   // 表格數據  
  18.   tableData: {  
  19.     type: Array,  
  20.     default: [],  
  21.   }, 
  22.   // 數據總數  
  23.   total: {  
  24.     type: Number,  
  25.     default: 1000,  
  26.   },  
  27.   // 獲取數據的接口  
  28.   fetch:{  
  29.      type: function,  
  30.      default:() => {}  
  31.   },  
  32.   // 表單查詢的參數  
  33.   query:{  
  34.     type: Object,  
  35.     default: () => {}  
  36.   }  
  37. },  
  38. methods: {  
  39.   // 改變當前頁碼 currentPage 時觸發  
  40.   handleCurrentChange: function (currentPage) {  
  41.     this.$emit('handleChange', this.pagesize, currentPage)  
  42.     this.fetch(this.query)  
  43.   },  
  44.   // 改變當前頁 pageSize 時觸發  
  45.   handleSizeChange: function (pageSize) {  
  46.     this.$emit('handleChange', pageSize, this.currentPage)  
  47.     this.fetch(this.query)  
  48.   }  

使用時我們只需要傳以上的參數就可以直接調用這兩個組件了。

還有「表格中行選中狀態數據」,與「展示數據」之間的聯動等等,可發揮之處有很多。將他們封裝后可以大大減輕重復的工作量,特別是像后臺管理類的項目,頁面間相似度很高的,尤其適合這種方法。

5、完全沒有符合的組件

如果你要的組件,外部的組件庫中都沒有提供,那就自己動手封裝一個。盡可能將你的組件變得通用,兼容。嘗試想一想你的組件是否在其他情況下也能用。另外也可以多看看別人是如何封裝組件的,這有助于你自己開發。

如果你可以將你在前端開發道路上自己封裝的組件一個個收集起來,大概率可以方便你以后相同場景下直接復用,也有助于你的代碼解耦。

總結

如果你遇到了組件庫中的組件不合適的,先考慮看看是否能利用它的方法或屬性達到效果,再看看能否修改它的代碼達成目的。如果最后實在不行,那么就自己動手造輪子吧!自己造的輪子記得記下來,沒準以后就能用上!

最后,Vue Demo Collection[2] 這個項目,是我在開發過程中遇到的通用 Vue 組件的 demo 收集,包含了 Vue/CSS/Echarts 等一些可以復用的組件 ❤️,基本上我認為可以復用的組件和代碼片段我都會記錄在這,方便自己的回顧和使用,也算是個人成長的記錄。 

 

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

2021-10-07 09:03:44

Uniapp封裝組件

2021-04-30 17:35:16

前端開發技術熱點

2022-09-16 07:46:10

組件庫設計結構

2020-10-21 08:38:47

React源碼

2021-01-24 07:42:35

前端Table組件技術熱點

2023-02-27 09:10:57

前端組件設計

2025-08-15 10:31:56

2022-02-14 14:14:02

鴻蒙數據可視化JS

2021-11-22 10:00:33

鴻蒙HarmonyOS應用

2022-02-15 13:55:08

圖片濾鏡glfx.jslena.js

2025-05-06 00:45:00

AI前端組件庫

2022-05-13 21:20:23

組件庫樣式選擇器

2021-09-17 06:56:54

前端Iconfont圖標庫

2024-07-01 09:49:18

UI組件庫Radix

2022-02-14 08:58:00

架構

2025-11-07 08:59:19

2022-09-01 10:46:02

前端組件庫

2009-05-22 09:25:00

SQL Server版本SQL Server

2021-01-01 09:01:05

前端組件化設計
點贊
收藏

51CTO技術棧公眾號

99精品久久久久| www.色就是色| 男男电影完整版在线观看| 麻豆91精品| 久久久91精品国产| 中文字幕 日本| 国产91在线播放精品| 夜夜精品视频一区二区| 奇米影视首页 狠狠色丁香婷婷久久综合 | 亚洲国产999| 日韩福利电影在线| 欧美激情视频一区二区| 亚洲AV无码成人精品区明星换面| 年轻的保姆91精品| 在线观看免费亚洲| 国产素人在线观看| 国产高清一区二区三区视频| 久久久一区二区三区捆绑**| 亚洲va电影大全| 久久久久久在线观看| 欧美日韩爆操| 久久视频免费在线播放| 蜜桃av乱码一区二区三区| 伊人精品久久| 在线综合视频播放| www.99在线| 美女18一级毛片一品久道久久综合| 亚洲人成在线观看一区二区| 美女视频久久| 人人妻人人澡人人爽久久av| 国产在线不卡一区| 国产啪精品视频网站| 99久久久久久久久| 99人久久精品视频最新地址| 欧美xxxx做受欧美| 亚洲欧美精品aaaaaa片| 久久视频在线| 一区二区成人精品| 日本精品在线观看视频| 天天久久夜夜| 日韩激情片免费| 疯狂揉花蒂控制高潮h| 精品欧美午夜寂寞影院| 精品国产乱码久久久久久免费| 久久精品一卡二卡| 91精品麻豆| 欧美精品一级二级| √天堂资源在线| 精品一区91| 91麻豆精品91久久久久久清纯 | 国产麻豆成人传媒免费观看| 国产日本欧美一区| 91在线你懂的| 紧缚捆绑精品一区二区| 国产一区二区色| 国产美女无遮挡永久免费| 免费在线看一区| 国产噜噜噜噜噜久久久久久久久 | 亚洲美女久久久| 精品久久久久久中文字幕人妻最新| 久久成人福利| 亚洲乱亚洲乱妇无码| 五月天综合视频| 欧美综合久久| 北条麻妃99精品青青久久| 免费精品在线视频| 欧美在线亚洲综合一区| 久久久女女女女999久久| 久青草免费视频| 国产日韩亚洲| 国产精品极品美女粉嫩高清在线| 夜夜躁很很躁日日躁麻豆| 九色综合狠狠综合久久| 亚洲在线免费视频| 韩国中文字幕hd久久精品| 91在线国产观看| 日韩高清专区| www久久日com| 午夜精品福利一区二区蜜股av| 国产3p露脸普通话对白| 羞羞影院欧美| 欧美一级午夜免费电影| 日本japanese极品少妇| av一区二区在线播放| 久久综合伊人77777| 久久一区二区三| 爽爽淫人综合网网站| 国产女精品视频网站免费| 精品人妻一区二区三区日产乱码| 成人av在线电影| 亚洲欧洲一二三| 美女日批视频在线观看| 在线观看视频欧美| 精品国产一二区| 日韩国产一区二区三区| 久久人人爽国产| 亚洲视频久久久| a在线欧美一区| 在线亚洲美日韩| 9765激情中文在线| 欧美精品亚洲一区二区在线播放| 先锋资源av在线| 久久久久久久久国产一区| 456亚洲影院| 国产乱人乱偷精品视频| 91蝌蚪国产九色| 久久国产精品免费观看| 成人性生交大片免费网站 | 深夜视频在线免费| 亚洲欧美日韩国产另类专区| 日韩 欧美 高清| 盗摄牛牛av影视一区二区| 丝袜一区二区三区| 日本中文字幕第一页| 国产成人在线色| 一区二区在线不卡| 亚洲1234区| 亚洲精品美女久久| 久久国产一级片| 韩国女主播成人在线观看| 欧美日韩在线观看一区二区三区| 欧美色图天堂| 日韩三级精品电影久久久| 天堂网av2018| 三级欧美在线一区| 久久久一本精品99久久精品| 国产丝袜在线播放| 717成人午夜免费福利电影| 99久久人妻无码精品系列| 在线精品在线| 国产精品区二区三区日本| 蜜桃av在线免费观看| 欧洲一区二区三区在线| 熟女人妻在线视频| 99国产精品| 国产女主播一区二区| 亚洲91av| 日韩精品一区二区三区老鸭窝 | 国产精品久久久久久久龚玥菲 | 亚洲国产成人porn| 五月花丁香婷婷| 日韩一区电影| 国产精品自产拍在线观看| 高h视频在线| 欧美在线啊v一区| 国产三级短视频| 免费观看成人av| 中文字幕一区二区三区最新 | 日本不卡久久| 欧美xxxxxx| 亚洲性日韩精品一区二区| 成人免费一级片| 中文字幕欧美区| 中文字幕第88页| 91精品综合| 操人视频欧美| √8天堂资源地址中文在线| 亚洲电影天堂av| 亚洲GV成人无码久久精品| 久久综合久久鬼色中文字| 一本色道无码道dvd在线观看| 亚洲自拍电影| 国产精品视频一区国模私拍| 天天影视久久综合| 日韩免费成人网| 五月婷婷色丁香| 亚洲国产高清在线观看视频| 91pony九色| 国产在线欧美| 欧美久久久久久久| 六九午夜精品视频| 久久久久久久久久久久av| 你懂的在线网址| 6080国产精品一区二区| 久一区二区三区| 久久亚洲二区三区| 五月激情婷婷在线| 狠色狠色综合久久| 欧美理论一区二区| 亚洲a成人v| 69影院欧美专区视频| www.久久热.com| 日韩欧美的一区| 综合网在线观看| 亚洲精品国产一区二区三区四区在线 | 神马国产精品影院av| 午夜精品久久久久久久91蜜桃| 亚洲成人手机在线| 国产免费嫩草影院| 成人免费毛片高清视频| 久久久国产欧美| 综合激情在线| 欧美久久久久久久| **爰片久久毛片| 国产精品美女在线观看| 美女精品导航| 久久精品99久久久香蕉| 视频一区二区在线播放| 欧美一区二区视频在线观看| 日本免费在线观看视频| 亚洲精品第一国产综合野| 丰腴饱满的极品熟妇| 国产99精品国产| 中文字幕第88页| 亚洲自啪免费| 欧美狂野激情性xxxx在线观| 日本高清免费电影一区| 好吊妞www.84com只有这里才有精品 | 岛国在线视频| 亚洲激情在线观看视频免费| 国产精品毛片一区二区在线看舒淇 | 131美女爱做视频| 久久久五月天| 日韩精品一区二区三区色偷偷| 超碰97成人| 91九色单男在线观看| 日韩高清成人| 欧美与欧洲交xxxx免费观看| 欧美卡一卡二| 久久国产精品免费视频| 91社区在线观看播放| 国产视频精品久久久| 国产综合在线播放| 制服丝袜亚洲精品中文字幕| 中文文字幕一区二区三三| 欧美日韩性视频| 国产无遮挡裸体免费视频| 亚洲激情五月婷婷| 老女人性淫交视频| 亚洲免费av在线| 久久国产美女视频| 日韩一区日韩二区| 天天爽天天爽天天爽| 国产精品灌醉下药二区| 在线观看亚洲大片短视频| 久久久综合激的五月天| 喷水视频在线观看| www.日韩在线| 插吧插吧综合网| 久久综合中文字幕| 91中文字幕永久在线| 久久久不卡网国产精品二区| 蜜桃精品成人影片| 久久久久88色偷偷免费| 蜜桃av免费看| 国产欧美精品一区二区色综合| 五月天综合视频| 国产精品色在线观看| 国产一区二区三区视频播放| 国产精品毛片高清在线完整版| 亚洲一级片在线播放| 成人免费一区二区三区视频| 欧美激情精品久久久久久免费| 国产精品久久久久久久久动漫| 日韩在线一卡二卡| 亚洲免费观看高清完整版在线| 免费无码毛片一区二区app| 亚洲国产成人porn| 欧美一区二区三区网站| 在线观看91视频| 国产视频第一页| 精品国产成人系列| 性xxxx18| 色av吧综合网| 国产亚av手机在线观看| 97在线看福利| 超薄肉色丝袜脚交一区二区| 91精品中国老女人| jazzjazz国产精品麻豆| 欧美日韩天天操| 天天综合国产| 国产av麻豆mag剧集| 日本欧美一区二区三区| 日日夜夜精品视频免费观看| 99久久国产综合精品色伊| 欧美成人另类视频| 一区二区三区色| 影音先锋在线国产| 欧美精品18+| 天天操天天射天天| 综合136福利视频在线| 国产精品—色呦呦| 国产精品欧美在线| 9l视频自拍九色9l视频成人| 久久久久久九九九九| 97国产精品| 黄色动漫在线免费看| 免费成人美女在线观看.| 91精品人妻一区二区三区蜜桃2| 99久久久精品| 日本不卡一区视频| 天天做天天摸天天爽国产一区| 中文在线a天堂| 亚洲黄色www| 国产三级在线播放| 国产成人精品久久亚洲高清不卡| 高清久久一区| 日韩精品不卡| 一区二区久久| 五月天六月丁香| 中文字幕av一区二区三区免费看 | 国产日韩一区二区三区在线| 国产精品自在自线| 久久综合狠狠综合久久综合88 | 高清av免费一区中文字幕| 国精一区二区| 少妇高潮喷水在线观看| 国产一区二三区好的| 亚洲理论片在线观看| 午夜精品福利一区二区三区蜜桃| 国产视频一二三四区| 一区二区亚洲精品国产| 九色porny丨入口在线| 97视频热人人精品| 天天av综合| 亚洲欧美偷拍另类| 国产日韩三级在线| 欧美日韩综合在线观看| 精品免费视频一区二区| 国产精品一卡二卡三卡| 国产精品久久久久久久午夜| 美女久久久久| 草草久久久无码国产专区| 成人免费观看av| 欧美日韩在线视频免费播放| 欧美高清视频不卡网| 午夜视频在线观看免费视频| 国产精品成人国产乱一区| 亚洲免费专区| 中文字幕日本最新乱码视频| 成人精品gif动图一区| 久久久精品国产sm调教网站| 欧美一级在线视频| av在线下载| 亚洲在线观看视频| 欧美视频亚洲视频| 国产乱淫av片| 亚洲国产日韩在线一区模特| 性网爆门事件集合av| 欧美另类极品videosbest最新版本| 99久久这里有精品| 99亚洲国产精品| 国产精品资源网| 极品颜值美女露脸啪啪| 欧美一级久久久久久久大片| 亚洲综合影视| 成人动漫在线观看视频| 亚洲性色视频| 中文字幕日韩三级片| 色香色香欲天天天影视综合网| 女人天堂在线| 国产日韩在线观看av| 国产精品久久久久一区二区三区厕所| 邪恶网站在线观看| 亚洲人成网站精品片在线观看| 国产高清视频免费| 久久免费国产精品1| 全球av集中精品导航福利| 99久久国产宗和精品1上映| 国产欧美日韩卡一| 国产视频一区二区三| 欧美精品www在线观看| 牲欧美videos精品| 国产成人黄色网址| 亚洲一区二区不卡免费| 亚洲日本香蕉视频| 国产精品美女久久久久久免费| 国产精品麻豆久久| yjizz视频| 在线免费观看日本欧美| 免费在线观看av片| 国产乱码精品一区二区三区中文| 亚洲免费网址| 国产美女高潮视频| 亚洲二区在线播放视频| 精品无人乱码一区二区三区| 熟女视频一区二区三区| 成人免费高清在线| 亚洲天堂视频在线播放| 欧美高清第一页| 国产尤物久久久| 久久久久久国产精品日本| 五月天中文字幕一区二区| 成年网站在线| 成人av影视在线| 蜜臀久久99精品久久久久宅男| 久久成人国产精品入口| 亚洲欧美日本精品| 日韩在线视频一区二区三区| 人妻内射一区二区在线视频| 国产精品久久久久久久第一福利| 国产 日韩 欧美 综合| 国产精品视频导航| 最新国产拍偷乱拍精品| 蜜桃av.com| 亚洲精品少妇网址| 视频二区欧美| 污污网站免费看| 精品久久久香蕉免费精品视频| 成人影院www在线观看|