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

jQuery === 面條式代碼?

開發 開發工具
自從React/Vue等框架流行之后,jQuery被打上了面條式代碼的標簽,甚至成了“過街老鼠”,好像誰還在用jQuery,誰就還活在舊時代,很多人都爭先恐后地擁抱新框架,各大博客網站有很大一部分的博客都在介紹新的框架,爭當時代的“弄潮兒”。

jQuery

自從React/Vue等框架流行之后,jQuery被打上了面條式代碼的標簽,甚至成了“過街老鼠”,好像誰還在用jQuery,誰就還活在舊時代,很多人都爭先恐后地擁抱新框架,各大博客網站有很大一部分的博客都在介紹新的框架,爭當時代的“弄潮兒”。新框架帶來的新的理念,新的開發方式不可否認帶來了生產效率,但是jQuery等就應該被打上“舊時代”面條式代碼的標簽么?

我們從一篇文章說起:《React.js 的介紹 – 針對了解 jQuery 的工程師(譯)》,英文原文是這個《React.js Introduction For People Who Know Just Enough jQuery To Get By》, 這篇文章我好久前就看過,現在再把它翻出來,里面對比了下jQuery和React分別實現一個發推的功能,作者用jQuery寫著寫著代碼就亂套了,而用React不管需求多復雜,代碼條理依舊很清晰。

我們一步步按照原文作者的思路來拆解。

(1)輸入個數為0時,發送按鈕不可點擊

如下圖所示,當輸入框沒有內容時,發推按鈕置灰不可點,有內容點才能點。


作者寫的代碼是這樣的:

  1. // 初始化狀態 
  2. $("button").prop("disabled"true); 
  3.   
  4. // 文本框的值發生變化時 
  5. $("textarea").on("input"function() { 
  6.   // 只要超過一個字符,就 
  7.   if ($(this).val().length > 0) { 
  8.     // 按鈕可以點擊 
  9.     $("button").prop("disabled"false); 
  10.   } else { 
  11.     //否則,按鈕不能點擊 
  12.     $("button").prop("disabled"true); 
  13.   } 
  14. }); 

這個代碼本身寫得很累贅,首先,既然一開始那個button是disabled的,那就直接在html上寫個disabled屬性就行了:

  1. <form class="tweet-box"
  2.     <textarea name="textMsg"></textarea> 
  3.     <input disabled type="submit" name="tweet" value="Tweet"
  4. </form> 

第二個要控制按鈕的狀態,其實核心只要一行代碼就行了,不需要寫那么長:

  1. let form = $(".tweet-box")[0]; 
  2. $(form.textMsg).on("input"function() { 
  3.     form.tweet.disabled = this.value.length <= 0; 
  4. }).trigger("input"); 

這個代碼應該夠簡潔了吧,而且代碼在jQuery和原生之間來回切換,游刃有余。

(2)實現剩余字數功能

如下圖所示:


這個也好實現:

  1. let form = $(".tweet-box")[0], 
  2.     $leftWordCount = $("#left-word-count"); 
  3.   
  4. $(form.textMsg).on("input"function() { 
  5.     // 已有字數 
  6.     let wordsCount = this.value.length; 
  7.     $leftWordCount.text(140 - wordsCount); 
  8.     form.tweet.disabled = wordsCount <= 0;  
  9. }); 

(3)添加圖片按鈕

如下圖所示,左下角多了一個選擇照片的按鈕:


如果用戶選擇了照片,那么可輸入字數將會減少23個字符,并且Add Photo文案要變成Photo Added。我們先來看下作者是怎么實現的,如下代碼:

  1. if ($(this).hasClass("is-on")) { 
  2.   $(this) 
  3.     .removeClass("is-on"
  4.     .text("Add Photo"); 
  5.   $("span").text(140 - $("textarea").val().length); 
  6. else { 
  7.   $(this) 
  8.     .addClass("is-on"
  9.     .text("✓ Photo Added"); 
  10.   $("span").text(140 - 23 - $("textarea").val().length); 

如果代碼像作者這樣寫的話確實是比較亂,而且比較面條式。但是我們可以優雅地實現。首先,選擇照片一般會寫一個input[type=file]的隱藏輸入框蓋在上傳圖標下面:

  1. <div class="upload-container"> 
  2.     <img src="upload-icon.png" alt> 
  3.     <span id="add-photo">Add Photo</span> 
  4.     <input type="file" name="photoUpload"> 
  5. </div> 

然后監聽它的change事件,在change事件里面給form套一個類:

  1. $(form.photoUpload).on("change"function() { 
  2.     // 如果選擇了照片則添加一個photo-added的類 
  3.     this.value.length ? $(form).addClass("photo-added"
  4.                 // 否則去掉 
  5.                 : $(form).removeClass("photo-added"); 
  6.              
  7. }); 

然后就可以來實現文案改變的需求了,把上面#add-photo的span標簽添加兩個data屬性,分別是照片添加和未添加的文案,如下代碼所示:

  1. <span id="add-photo" data-added-text="Photo Added"  
  2.       data-notadded-text="Add Photo"></span> 

通過form的類結合before/after偽類控制html上的文案,如下代碼所示:

  1. #add-photo:before { 
  2.     content: attr(data-empty-text); 
  3.   
  4. form.photo-added #add-photo:before { 
  5.     content: attr("data-added-text); 

這樣就可以了,我們算是用了一個比較優雅的方式實現了一個文案變化的功能,其中CSS的attr可以兼容到IE9,并且這里html/css/js相配合,共同完成這個變化的功能,這應該也挺好玩的。

剩下一個要減掉23字符的需求,只需要在減掉的時候判斷一下:

  1. $(form.textMsg).on("input"function() { 
  2.     // 已有字數 
  3.     let wordsCount = this.value.length; 
  4.     form.tweet.disabled = wordsCount <= 0; 
  5.     $leftWordCount.text(140 - wordsCount -  
  6.             //如果已經添加了圖片再減掉23個字符 
  7.             ($(form).hasClass("photo-added") ? 23 : 0)); 
  8. }); 

然后在選擇圖片之后trigger一下,讓文字發生變化,如下代碼倒數第二行:

  1. /* 
  2.  * @trigger 會觸發文字輸入框的input事件以更新剩余字數 
  3.  */ 
  4. $(form.photoUpload).on("change"function() { 
  5.     // 如果選擇了照片則添加一個photo-added的類 
  6.     this.value.length ? $(form).addClass("photo-added") :  
  7.                 // 否則去掉 
  8.                 $(form).removeClass("photo-added"); 
  9.     $(form.textMsg).trigger("input"); 
  10. }); 

這里又使用了事件的機制,用reac應該基本上都是用狀態state控制了。

再來看***一個功能。

(4)沒有文字但是有照片發推按鈕要可點

上面是只要沒有文字,那么發推按鈕不可點,現在要求有圖片就可點。這個也好辦,因為如果有圖片的話,form已經有了一個類,所以只要再加一個判斷就可以了:

  1. $(form.textMsg).on("input"function() { 
  2.     // 已有字數 
  3.     let wordsCount = this.value.length; 
  4.     form.tweet.disabled = wordsCount <= 0  
  5.             //disabled再添加一個與判斷 
  6.             && !$(form).hasClass("photo-added"); 
  7.     $leftWordCount.text(140 - wordsCount -  
  8.             //如果已經添加了圖片再減掉23個字符 
  9.             ($(form).hasClass("photo-added") ? 23 : 0)); 
  10. }); 

***看一下,匯總的JS代碼,加上空行和注釋總共只有23行:

  1. let form = $(".tweet-box")[0], 
  2.     $leftWordCount = $("#left-word-count"); 
  3.   
  4. $(form.textMsg).on("input"function() { 
  5.     // 已有字數 
  6.     let wordsCount = this.value.length; 
  7.     form.tweet.disabled = wordsCount <= 0  
  8.             //disabled再添加一個與判斷 
  9.             && !$(form).hasClass("photo-added"); 
  10.     $leftWordCount.text(140 - wordsCount -  
  11.             //如果已經添加了圖片再減掉23個字符 
  12.             ($(form).hasClass("photo-added") ? 23 : 0)); 
  13. }); 
  14.   
  15. /* 
  16.  * @trigger 會觸發文字輸入框的input事件以更新剩余字數 
  17.  */ 
  18. $(form.photoUpload).on("change"function() { 
  19.     // 如果選擇了照片則添加一個photo-added的類 
  20.     this.value.length ? $(form).addClass("photo-added") :  
  21.             // 否則去掉 
  22.             $(form).removeClass("photo-added"); 
  23.     $(form.textMsg).trigger("input"); 
  24. }); 

html大概有10行,還有6行核心CSS,不過這兩個比較易讀。再來看一下React的完整版本,作者的實現:

  1. var TweetBox = React.createClass({ 
  2.   getInitialState: function() { 
  3.     return { 
  4.       text: ""
  5.       photoAdded: false 
  6.     }; 
  7.   }, 
  8.   handleChange: function(event) { 
  9.     this.setState({ text: event.target.value }); 
  10.   }, 
  11.   togglePhoto: function(event) { 
  12.     this.setState({ photoAdded: !this.state.photoAdded }); 
  13.   }, 
  14.   remainingCharacters: function() { 
  15.     if (this.state.photoAdded) { 
  16.       return 140 - 23 - this.state.text.length; 
  17.     } else { 
  18.       return 140 - this.state.text.length; 
  19.     } 
  20.   }, 
  21.   render: function() { 
  22.     return ( 
  23.       <div className="well clearfix"
  24.         <textarea className="form-control" 
  25.                   onChange={this.handleChange}></textarea> 
  26.         <br/> 
  27.         <span>{ this.remainingCharacters() }</span> 
  28.         <button className="btn btn-primary pull-right" 
  29.           disabled={this.state.text.length === 0 && !this.state.photoAdded}>Tweet</button> 
  30.         <button className="btn btn-default pull-right" 
  31.           onClick={this.togglePhoto}> 
  32.           {this.state.photoAdded ? "✓ Photo Added" : "Add Photo" } 
  33.         </button> 
  34.       </div> 
  35.     ); 
  36.   } 
  37. }); 
  38.   
  39. React.render( 
  40.   <TweetBox />, 
  41.   document.body 
  42. ); 

React的套路是監聽事件然后改變state,在jsx的模板里,使用這些state展示,而jQuery的套路是監聽事件,然后自己去控制DOM展示。React幫你操作DOM,jQuery要自己去操作DOM,前者提供了便利但同時也失去了靈活性,后者增加了靈活性但同時增加了復雜度。

使用jQuery不少人容易寫出面條式的代碼,但是寫代碼的風格我覺得和框架沒關系,關鍵還在于你的編碼素質,就像你用了React寫class,你就可以說你就是面向對象了?不見得,我在《JS與面向對象》這篇文章提到,寫class并不代表你就是面向對象,面向對象是一種思想而不是你代碼的組織形式。一旦你離開了React的框架,是不是又要回到面條式代碼的風格了?如果是的話那就說明你并沒有沒有掌握面向對象的思想。不過,React等框架能夠方便地組件化,這點是不可否認的。

還有一個需要注意的是,框架會幫你屏蔽掉很多原生的細節,讓你專心于業務邏輯,但往往也讓你喪失了原生的能力不管是html還是js,而這才是最重要的功底。例如說對于事件,由于所有的事件都是直接綁在目標元素,然后通過state或者其它第三方的框架進行傳遞,這樣其實就沒什么事件的概念了。所以需要警惕使用了框架但是喪失了基本的前端能力,再如ajax分頁改變url,或者說單頁面路由的實現方式,還有前后退的控制,基本上能夠完整回答地比較少。很多人都會用框架做頁面,但是不懂JS.

原文鏈接:https://fed.renren.com/2017/09/03/jquery-not-noodle-code/ 

【本文是51CTO專欄作者“人人網FED”的原創稿件,轉載請通過51CTO聯系原作者獲取授權】

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2020-02-19 08:00:00

微服務架構分布式代碼

2017-02-08 10:56:32

光纖產能技術

2017-10-11 16:19:36

jquery留言框設計

2020-12-17 07:59:46

聲明式代碼命令式代碼代碼

2014-09-04 09:48:32

jQuery響應式

2011-11-02 17:17:06

jQuery

2012-06-13 10:17:40

jQuery

2025-10-11 04:15:00

2012-10-11 09:09:26

jQueryJSWeb

2013-07-29 14:28:43

JQueryJQuery實現分頁分頁程序代碼

2012-04-26 13:12:09

jQuery代碼優化

2020-09-04 06:27:22

編碼命令式聲明式代碼

2022-05-28 11:00:57

安全編碼安全代碼應用安全

2012-04-24 14:06:37

jQuery代碼

2014-04-22 11:01:56

jQuery代碼

2012-05-07 09:53:10

jQuery

2015-11-05 09:07:12

代碼傻瓜式

2024-10-22 09:39:51

2009-07-21 17:16:34

Scala函數式指令式

2011-11-23 09:21:43

jQuery
點贊
收藏

51CTO技術棧公眾號

亚洲综合日韩在线| 精品久久久av| av网站在线不卡| 看黄网站在线| www.日本不卡| 国产精品主播视频| 久久婷婷一区二区| 激情婷婷综合| 精品久久久久99| 狠狠操精品视频| 中文字幕伦理免费在线视频| 91香蕉国产在线观看软件| 国产精品旅馆在线| 国产无遮挡又黄又爽又色| 国产一区二区三区91| 欧美一区二区三区免费| 中文字幕无码不卡免费视频| 在线观看电影av| 久久久99精品久久| 不卡视频一区二区三区| 亚洲天堂视频在线播放| 国产精品观看| 久久久国产91| 国产三级在线观看完整版| 国产伦精品一区二区三区在线播放| 欧洲一区在线观看| av之家在线观看| av在线麻豆| 国产精品嫩草影院com| 精品产品国产在线不卡| 99久久免费国产精精品| 丝袜美腿成人在线| 2024亚洲男人天堂| 久久久久亚洲av无码专区| 97精品中文字幕| 国产一区二区日韩| 国产传媒第一页| 久久中文字幕导航| 精品国产乱码久久| 被黑人猛躁10次高潮视频| 成人短视频app| 婷婷开心激情综合| 久久久久久免费看| 亚洲第一图区| 一区二区成人在线| 路边理发店露脸熟妇泻火| 免费网站免费进入在线| 国产精品天干天干在线综合| 日韩视频专区| av在线免费观看网站| 久久伊99综合婷婷久久伊| 精品无人区一区二区三区| 免费观看a视频| 夫妻av一区二区| 国产精品一区视频| 好吊色一区二区| 99精品久久只有精品| 国产精品一区二区欧美黑人喷潮水 | 国产孕妇孕交大片孕| 免费亚洲电影在线| 国产三级精品网站| 国产巨乳在线观看| 国产乱淫av一区二区三区| 亚洲一区久久久| 亚洲AV无码国产精品午夜字幕 | 成人欧美一区二区三区在线观看| 国产叼嘿视频在线观看| 岛国精品一区二区| 久久精品国产精品国产精品污 | 最近日韩中文字幕| 熟女视频一区二区三区| 污污的视频在线观看| 亚洲高清视频的网址| 俄罗斯av网站| 超薄肉色丝袜脚交一区二区| 欧美色男人天堂| 99国产精品免费视频| 91精品啪在线观看国产爱臀| 亚洲激情小视频| 蜜臀久久99精品久久久久久| 999精品色在线播放| 九九精品在线观看| 久久精品国产成人av| 麻豆精品在线观看| 91久久国产自产拍夜夜嗨| 图片区 小说区 区 亚洲五月| 国产亚洲精品资源在线26u| 一本色道婷婷久久欧美| 欧美78videosex性欧美| 91成人免费网站| 波多野结衣在线免费观看| 免费日韩一区二区三区| 中文字幕在线看视频国产欧美| 色在线观看视频| 美女久久网站| 亚洲一区二区在线播放| 蜜桃视频在线观看网站| 亚洲人一二三区| av片中文字幕| 中文字幕一区二区三区日韩精品 | 97电影在线| 亚洲一区二区三区四区在线免费观看| 欧美成人黑人猛交| 白白在线精品| 日韩中文字幕久久| 国产香蕉视频在线| 久久精品免费观看| 精品午夜一区二区三区| av在线免费网站| 在线观看视频一区二区| youjizz.com国产| 99精品国产一区二区三区| 欧美在线欧美在线| 一区二区高清在线| 欧美国产综合在线| 欧美日韩不卡| 欧美白人最猛性xxxxx69交| 日韩在线免费观看av| 中国精品18videos性欧美| 欧美一级片免费在线| 11024精品一区二区三区日韩| www.成人网.com| 国产91porn| 偷拍自拍亚洲| 尤物yw午夜国产精品视频| 日韩精品无码一区二区| 国产精品亚洲一区二区三区在线| 香蕉久久夜色| 天天免费亚洲黑人免费| 亚洲激情在线观看| 国产亚洲精品久久久久久无几年桃 | 国产一区二区三区小说| 欧美一级做一级爱a做片性| 亚洲女成人图区| 日本韩国欧美中文字幕| 91在线国内视频| 免费看一级大黄情大片| 精品嫩草影院| 国产+人+亚洲| 日本黄色三级视频| 亚洲国产精品一区二区久久恐怖片| 国产资源中文字幕| 欧美大片专区| 亚洲一区亚洲二区亚洲三区| 伦xxxx在线| 欧美精品777| 久艹在线观看视频| 国产精品一区免费视频| 久久久久久av无码免费网站下载| 欧美黄色一级| 久久久久女教师免费一区| 成 人 黄 色 片 在线播放| 一个色在线综合| 免费啪视频在线观看| 国产真实久久| 精品一区二区国产| 竹内纱里奈兽皇系列在线观看 | yes4444视频在线观看| 91久久线看在观草草青青| 欧美 日韩 国产 成人 在线观看 | 欧美一区二区三| 国产精品视频大全| 免费av在线播放| 日韩西西人体444www| 国产性70yerg老太| 2020国产精品自拍| 色哟哟精品视频| 在线看片不卡| 久久久久免费网| 韩国成人在线| 欧美伦理91i| 欧美一区二区在线观看视频| 欧美日韩精品在线视频| 欧美 日韩 国产 成人 在线观看| 久久国产精品99久久人人澡| 国产一级黄色录像片| 另类春色校园亚洲| 国产精品极品在线| 国产写真视频在线观看| 亚洲激情久久久| а中文在线天堂| 亚洲欧美欧美一区二区三区| 久久久午夜精品福利内容| 久久久成人网| 97超碰在线视| 欧美精品第一区| 91免费看蜜桃| av激情成人网| 久久久久久久电影一区| 久色视频在线| 欧美sm美女调教| 中文字幕 国产精品| 亚洲精品福利视频网站| 欧美丰满少妇人妻精品| 九九久久精品视频| 国产精品50p| 亚洲蜜桃视频| 日韩精品一区二区三区四区五区| 视频免费一区二区| 日韩男女性生活视频| 天堂av最新在线| 国产一区二区三区视频在线观看| 亚洲精品久久久狠狠狠爱| 在线亚洲高清视频| 国产精品16p| 亚洲日本一区二区| 中文字幕免费视频| 播五月开心婷婷综合| 国产一区二区在线观看免费视频| 国产精品久久久久久久免费软件| 大地资源第二页在线观看高清版| 国产不卡一区| 国产在线精品一区二区三区| 亚洲国产天堂| 国产精品爱啪在线线免费观看| 日韩免费影院| 久久在线精品视频| 国产高清视频免费最新在线| 亚洲成人精品视频| 国产夫绿帽单男3p精品视频| 欧美日本视频在线| 在线免费一区二区| 91福利小视频| 午夜婷婷在线观看| 亚洲成av人片在线观看| 婷婷伊人五月天| 国产精品国产三级国产| 这里只有久久精品| 久久亚洲一级片| 一级做a爰片毛片| 不卡av在线网| 亚洲一区二区三区综合| 成人黄色av电影| 亚洲乱妇老熟女爽到高潮的片| 国产一区二区三区av电影| 一级黄色录像在线观看| 蜜臀久久99精品久久久画质超高清| 成人小视频在线看| 亚洲欧美大片| 亚洲人成无码www久久久| 羞羞视频在线观看欧美| 国产成人黄色片| 久久精品官网| 无码aⅴ精品一区二区三区浪潮| 在线亚洲国产精品网站| jizzjizz国产精品喷水| 国产欧美69| 日本免费一级视频| 久久先锋影音| 一路向西2在线观看| 久久激情五月激情| 亚洲天堂av一区二区三区| 国产一区二区三区综合| 亚洲精品国产久| 丰满白嫩尤物一区二区| 野战少妇38p| 91免费视频观看| 国产三级av在线播放| 国产欧美一二三区| 极品久久久久久久| 亚洲欧美经典视频| 18精品爽视频在线观看| 精品久久在线播放| 久久久精品毛片| 欧美日韩一区高清| aaa国产视频| 亚洲第五色综合网| 欧美91精品久久久久国产性生爱| 亚洲人成电影网站色| 成人精品福利| 欧美另类在线播放| 三级在线观看视频| 国产精品高潮呻吟视频 | 91视频免费在线观看| 91成人精品在线| 欧美一级二级三级| 欧美国产一级| 男人添女人下部高潮视频在观看| 久久激情一区| 欧美性受xxxx黒人xyx性爽| 成人黄色国产精品网站大全在线免费观看| 无码人妻精品一区二区三区温州| 国产精品麻豆网站| 久草视频精品在线| 日本道在线观看一区二区| 国产巨乳在线观看| 国产视频久久网| 午夜在线观看视频| 97免费在线视频| 久久久加勒比| 精品久久久久久一区| 成人一区而且| 久激情内射婷内射蜜桃| 理论片日本一区| 国产xxxxxxxxx| 最新成人av在线| 波多野结衣视频免费观看| 欧美videos中文字幕| 91精品专区| 91av视频在线播放| 久久伦理中文字幕| 日韩欧美精品久久| 亚洲精品1区| 日韩中文字幕a| 91小视频在线免费看| 九九精品视频免费| 91搞黄在线观看| 视频国产一区二区三区| 乱亲女秽乱长久久久| 成人av集中营| 久热这里只精品99re8久| 欧美日本三区| 在线观看免费的av| 国产欧美一区二区精品性色| 国产稀缺真实呦乱在线| 日韩欧美中文一区二区| 2021av在线| 国产成人精品久久亚洲高清不卡| 成人性生交大片免费看中文视频| 一本久久a久久精品vr综合| 久久中文欧美| 中文字幕5566| 午夜精品一区在线观看| 亚洲AV午夜精品| 久久综合久久八八| 欧美美女福利视频| 色99中文字幕| 久久精品人人| 强伦人妻一区二区三区| 五月婷婷久久丁香| 免费看日韩av| 久久久中精品2020中文| 91蝌蚪精品视频| 久操手机在线视频| 国产麻豆成人精品| 日本一级特级毛片视频| 欧美日韩国产一区二区三区地区| 国产三级在线看| 国产精品久久中文| 日本a口亚洲| 在线观看免费污视频| 国产精品美女久久福利网站| 欧美日韩 一区二区三区| 国产亚洲激情视频在线| 成人日韩精品| 亚洲欧美成人一区| 理论片日本一区| 成年人一级黄色片| 日韩精品在线一区二区| 手机av在线播放| 国产美女精品久久久| 99成人精品| 欧美激情aaa| 欧美日韩国产一级片| yellow91字幕网在线| av一区二区三区免费| 亚洲高清久久| 香蕉网在线播放| 91成人免费电影| www久久日com| 国产精品视频免费一区二区三区| 亚洲精品欧美| 国产jk精品白丝av在线观看| 在线精品国精品国产尤物884a| h网站视频在线观看| 91精品视频专区| 一区精品久久| 免费看污片的网站| 91精品国产综合久久久久久 | 色偷偷中文字幕| 亚洲一区二区偷拍精品| 头脑特工队2免费完整版在线观看| 国产mv久久久| 亚洲国产成人精品女人| 午夜剧场免费看| 欧洲中文字幕精品| caoporn免费在线视频| 精品国产免费久久久久久尖叫| 久久精品二区三区| 2018天天弄| 日韩成人av一区| 999色成人| 国产美女网站在线观看| 国产欧美久久久精品影院| 精品久久久中文字幕人妻| 欧美一区二区三区艳史| 亚洲精品国产偷自在线观看| 噜噜噜在线视频| 欧美顶级少妇做爰| 极品在线视频| 日本一级淫片演员| 久久一区二区视频| 国产福利免费视频| 国产精品 欧美在线| 欧美片第1页综合| www.日本高清视频| 亚洲电影成人av99爱色| 亚洲一区二区av| 999香蕉视频| 一个色综合av|