日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

从 Dropdown 的 React 实现中学习到的

發(fā)布時(shí)間:2025/5/22 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从 Dropdown 的 React 实现中学习到的 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Demo

Demo Link

Note

dropdown 是一種很常見的 component,一般有兩種:

  • 展開 dropdown menu 后,點(diǎn)擊任意地方都應(yīng)該收起 menu。
  • 展開 dropdown menu 后,點(diǎn)擊 menu 內(nèi)部,不會(huì)收起 menu,只有點(diǎn)擊 menu 外部,才收起 menu。
  • 在 jQuery 時(shí)代,dropdown 是很好實(shí)現(xiàn)的,直接用 document.addEventListener('click', handler),監(jiān)聽 document 的 click 事件,然后讓 dropdown 的 menu 隱藏起來。如果想讓 menu 內(nèi)部的點(diǎn)擊不收起 menu,則讓 menu 內(nèi)部的點(diǎn)擊事件執(zhí)行 event.stopPropagation()。

    剛開始做 React 開發(fā)的時(shí)候,不知道是從哪接收到的思想,覺得 document.addEventListener() 的 API 不那么 React,很排斥使用。這樣,在實(shí)現(xiàn) dropdown component 時(shí),怎么處理在 menu 以外點(diǎn)擊時(shí)讓 menu 收起來成了一個(gè)頭疼的問題。

    我查了文檔,覺得可以用 onBlur 這個(gè)事件,但為了能夠接收到 onBlur 事件,menu 內(nèi)部必須是 input 類型的 component,或者是有 tabIndex 屬性,然后加上 tabIndex 后,當(dāng) component 處于 onFocus 時(shí),會(huì)額外在邊框上加上陰影的樣式,像下圖所示,必須額外再加 css 處理。總之,邏輯變得復(fù)雜了。

    后來用 React 做音樂播放器,看別人的實(shí)現(xiàn)源碼,發(fā)現(xiàn)他們都大都使用了 audioElement.addEventListener('play', handler) 這種原生 API,而且,有些邏輯如果不用原生事件就沒法處理,比如監(jiān)聽 window 的 resize 事件,似乎除了用 window.addEventListener('resize', handler) 就沒有其它辦法了。因此再回過頭來看 dropdown 的實(shí)現(xiàn),如果也用 document.addEventListener('click', handler) 處理 menu 以后的點(diǎn)擊的話,邏輯就簡單多了。

    但是,也還是有坑的。

    坑之一,React 的 event.stopPropagation() 無法阻止原生事件冒泡到 document。

    看這篇文章的詳細(xì)介紹:

    • React 合成事件和原生事件的阻止冒泡

    React 的 issue:

    • e.stopPropagation() seems to not be working as expect.

    React 有兩套事件系統(tǒng),一套是原生事件系統(tǒng),就是 document.addEventListener() 這種 API,另一套是 React 自己定義的,叫 SyntheticEvent (合成事件),比如下例中的 onClick。

    <a onClick={this.clickLink}>Open</a> 復(fù)制代碼

    實(shí)際 React 的所有合成事件都是綁定在 document 上的 (所謂的代理方式),而不是單獨(dú)綁在各個(gè) component 上,當(dāng)你執(zhí)行合成事件中的 event.stopPropagation() 時(shí),實(shí)際原生事件已經(jīng)到達(dá) document 了。

    所以 React 的 event.stopPropagation() 只能阻止合成事件繼續(xù)往上冒泡,卻不能阻止原生事件往上冒泡到 document。

    所以你會(huì)發(fā)現(xiàn),為什么我已經(jīng)在 menu 內(nèi)部的點(diǎn)擊事件 handler 中 stopPropagation 了,為什么全局的 click handler 還是會(huì)執(zhí)行,這就是原因。

    但是! React 的合成事件的 stopPropagation 雖然不能阻止事件冒泡到 document,但它可以阻止事件冒泡到 window。

    (這件事讓我想起,在某個(gè)項(xiàng)目中,我用了 React 的 event.stopPropagation(),導(dǎo)致 turbolinks 不工作了,當(dāng)時(shí)覺得很理所當(dāng)然,現(xiàn)在回想,不對(duì),turoblinks 綁定的是原生事件,如果它是綁在 <a> tag 上的話,不應(yīng)該不工作的啊,由此我推斷 turbolinks 的 click 事件是綁定在 window 上的,后來看了源碼,的確是這樣的)

    所以,為了在 React 的 dropdown 中實(shí)現(xiàn)點(diǎn)擊 menu 外部收起 menu,點(diǎn)擊內(nèi)部不收起 menu,有兩種辦法:

  • 使用 window.addEventLister('click', handler) 替代 document.addEventListener('click', handler),同時(shí)在 menu 內(nèi)部點(diǎn)擊時(shí),調(diào)用合成事件的 event.stopPropagation()

  • 不調(diào)用 event.stopPropagation(),讓事件冒泡到 document 的 click handler 中,在 handler 中判斷 event.target 中在 menu 內(nèi)部還是外部,使用 DOMNode.contains() 方法判斷。這種方法需要用 React 的 ref 屬性把 menu 的引用保存下來,如下所示:

    <div className="dropdown-body" ref={ref=>this._dropdown_body=ref}> 復(fù)制代碼

    判斷:

    handleGlobalClick = (event) => {console.log('global click')// use DOMNode.contains() method to judge click target is in or out of the dropdown bodyif (this._dropdown_body && this._dropdown_body.contains(event.target)) returnthis.setState({dropDownExpanded: false})document.removeEventListener('click', this.handleGlobalClick)} 復(fù)制代碼
  • 坑之二,在原生事件的 handler 中,this.setState() 是同步的,不是異步的,讓我很驚訝。之前一直以為 this.setState() 肯定是異步的。

    具體的分析可以看這篇文章 - 你真的理解 setState 嗎?

    總結(jié):

    setState 只在合成事件和生命周期函數(shù)中是 "異步" 的,在原生事件和 setTimeout 中都是同步的。

    但在 twitter 上看 Dan 發(fā)推說以后可能會(huì)統(tǒng)一成異步操作,拭目以待。

    其它細(xì)節(jié):

  • 只有在 menu 展開時(shí)才注冊(cè) document click handler,收起時(shí)移除 document click handler,是動(dòng)態(tài)的。

    handleGlobalClick = () => {console.log('global click')this.setState({dropDownExpanded: false})document.removeEventListener('click', this.handleGlobalClick)} 復(fù)制代碼
  • 為了實(shí)現(xiàn) toggle 的效果,即點(diǎn)擊按鈕,展開 dropdown menu,再點(diǎn)擊按鈕,則收到 menu,最簡單的辦法是,只有在 menu 收起的時(shí)候,才給按鈕綁定 click handler,menu 展開的時(shí)候,按鈕沒有 click handler,讓 document click handler 處理。否則,同時(shí)在合成事件的 handler 和原生事件的 handler 中調(diào)用 this.setState(),一個(gè)異步,一個(gè)同步,可能會(huì)引起麻煩。

    <div className="dropdown-head">{dropDownExpanded ?<button>Collapse dropdown menu - 1</button> :<button onClick={this.handleHeadClick}>Open dropdown menu - 1</button>}</div> 復(fù)制代碼
  • 注冊(cè) document 的 click handler 時(shí),必須在 setTimeout 回調(diào)中執(zhí)行。

    handleHeadClick = () => {console.log('head click')this.setState({dropDownExpanded: true})setTimeout(()=>{// must run in the next tickdocument.addEventListener('click', this.handleGlobalClick)}, 0)} 復(fù)制代碼
  • 在 componentWillUnmount() 中要移除 document 的 click handler,以免造成內(nèi)存泄漏。

    componentWillUnmount() {// important! we need remove global click handler when unmoutdocument.removeEventListener('click', this.handleGlobalClick)} 復(fù)制代碼
  • Update

    自從發(fā)現(xiàn)用 window.addEventListener('click', handler) 可以很方便地用來實(shí)現(xiàn)收起 React 中的 Dropdown 后,我就不亦樂乎的到處用起來了。為了避免寫無數(shù)遍的 window.addEventLister('click', handler),我封裝了一個(gè) NativeClickListener 的 Component,代碼沒幾行,如下所示:

    export default class NativeClickListener extends React.Component {static propTypes = {onClick: PropTypes.func}clickHandler = (event) => {console.log('NativeClickListener click')const { onClick } = this.propsonClick && onClick(event)}componentDidMount() {window.addEventListener('click', this.clickHandler)}componentWillUnmount() {window.removeEventListener('click', this.clickHandler)}render() {return this.props.children} } 復(fù)制代碼

    使用:

    <div className="dropdown-container"><div className="dropdown-head"><button onClick={this.handleHeadClick}>{dropDownExpanded ? 'Collapse' : 'Open'} dropdown menu - 5</button></div>{dropDownExpanded &&<NativeClickListener onClick={()=>this.setState({dropDownExpanded: false})}><div className="dropdown-body"onClick={this.handleBodyClick}>...</div></NativeClickListener>} </div>handleHeadClick = (event) => {console.log('head click')this.setState(prevState => ({dropDownExpanded: !prevState.dropDownExpanded}))event.stopPropagation() } handleBodyClick = (event) => {console.log('body click')// just can stop event propagate from document to windowevent.stopPropagation() } 復(fù)制代碼

    后來我想,那其它開源的 React 組件庫中的 Dropdown 都是怎么實(shí)現(xiàn)的呢,于是探究了一下,果然不出意外,也是用的原生的 addEventListener 實(shí)現(xiàn)的,但也有點(diǎn)意外的是,它們并沒有用 window.addEventListener,而都是用了 document.addEventListener 和 node.contains 方法實(shí)現(xiàn)。

  • Material Kit React

    這個(gè)組件庫的 Dropdown 用到了 @material-ui/core/ClickAwayListener,來看看它的實(shí)現(xiàn)。

    handleClickAway = event => {...if (doc.documentElement &&doc.documentElement.contains(event.target) &&!this.node.contains(event.target)) {this.props.onClickAway(event);}}render() {const { children, mouseEvent, touchEvent, onClickAway, ...other } = this.props;const listenerProps = {};if (mouseEvent !== false) {listenerProps[mouseEvent] = this.handleClickAway;}if (touchEvent !== false) {listenerProps[touchEvent] = this.handleClickAway;}return (<React.Fragment>{children}<EventListener target="document" {...listenerProps} {...other} /></React.Fragment>);} 復(fù)制代碼

    addEventListener 的邏輯看來在 EventListener 中,來自 react-event-listener 庫。而且從 target="document" 來看,event 是綁在 document 上的。

    class EventListener extends React.PureComponent {componentDidMount() {this.applyListeners(on);}applyListeners(onOrOff, props = this.props) {const { target } = props;if (target) {let element = target;if (typeof target === 'string') {element = window[target];}forEachListener(props, onOrOff.bind(null, element));}...}function on(target, eventName, callback, options) {// eslint-disable-next-line prefer-spreadtarget.addEventListener.apply(target, getEventListenerArgs(eventName, callback, options));}function off(target, eventName, callback, options) {// eslint-disable-next-line prefer-spreadtarget.removeEventListener.apply(target, getEventListenerArgs(eventName, callback, options));} 復(fù)制代碼
  • Ant Design 中的 Dropdown 的實(shí)現(xiàn)最終可以追溯到 react-component/trigger 組件。

    // We must listen to `mousedown` or `touchstart`, edge case:// https://github.com/ant-design/ant-design/issues/5804// https://github.com/react-component/calendar/issues/250// https://github.com/react-component/trigger/issues/50if (state.popupVisible) {let currentDocument;if (!this.clickOutsideHandler && (this.isClickToHide() || this.isContextMenuToShow())) {currentDocument = props.getDocument();this.clickOutsideHandler = addEventListener(currentDocument,'mousedown', this.onDocumentClick);}// always hide on mobileif (!this.touchOutsideHandler) {currentDocument = currentDocument || props.getDocument();this.touchOutsideHandler = addEventListener(currentDocument,'touchstart', this.onDocumentClick);}// close popup when trigger type contains 'onContextMenu' and document is scrolling.if (!this.contextMenuOutsideHandler1 && this.isContextMenuToShow()) {currentDocument = currentDocument || props.getDocument();this.contextMenuOutsideHandler1 = addEventListener(currentDocument,'scroll', this.onContextMenuClose);}// close popup when trigger type contains 'onContextMenu' and window is blur.if (!this.contextMenuOutsideHandler2 && this.isContextMenuToShow()) {this.contextMenuOutsideHandler2 = addEventListener(window,'blur', this.onContextMenuClose);}return;}onDocumentClick = (event) => {if (this.props.mask && !this.props.maskClosable) {return;}const target = event.target;const root = findDOMNode(this);if (!contains(root, target) && !this.hasPopupMouseDown) {this.close();}} 復(fù)制代碼
  • JetBrain 的 ring-ui 的 Dropdown 并沒有實(shí)現(xiàn)在其它地方點(diǎn)擊后讓 Dropdown 收起的功能,有點(diǎn)意外...

  • 一開始不是很理解,不過后來我發(fā)現(xiàn),如果用 window.addEventListener('click', handler) 的方式收起 Dropdown,在一個(gè)頁面中,如果有多個(gè) Dropdown,我先展開一個(gè) Dropdown menu (稱之為 A),再點(diǎn)擊另一個(gè) Dropdown (稱之為 B),因?yàn)樵?Dropdown B 的點(diǎn)擊事件中調(diào)用了 event.stopPropagation(),因此 Dropdown A 的 global click handler 將無法觸發(fā),因此 Dropdown A 無法收起。

    即使只有一個(gè) Dropdown,如果頁面中有其它任意地方的 event handler 中調(diào)用了 event.stopPropagation() 都會(huì)導(dǎo)致此 Dropdown 有可能無法收起。

    但是用 document.addEventListener('click', handler) 配合 node.contains() 方法卻不會(huì)有這個(gè)問題,因此恍然大悟,終于明白了為什么那些開源組件庫并沒有采用 window.addEventListener() 的方式。

    于是實(shí)現(xiàn) NativeClickListener2:

    export default class NativeClickListener extends React.Component {static propTypes = {onClick: PropTypes.func}clickHandler = (event) => {console.log('NativeClickListener click')if(this._container.contains(event.target)) returnconst { onClick } = this.propsonClick && onClick(event)}componentDidMount() {document.addEventListener('click', this.clickHandler)}componentWillUnmount() {document.removeEventListener('click', this.clickHandler)}render() {return (<div ref={ref=>this._container=ref}>{this.props.children}</div>)} } 復(fù)制代碼

    使用:

    <div className="dropdown-container"><div className="dropdown-head"><button onClick={this.handleHeadClick}>{dropDownExpanded ? 'Collapse' : 'Open'} dropdown menu - 5</button></div>{dropDownExpanded &&<NativeClickListener2 onClick={()=>this.setState({dropDownExpanded: false})}><div className="dropdown-body"onClick={this.handleBodyClick}>...</div></NativeClickListener2>} </div>handleHeadClick = (event) => {console.log('head click')this.setState(prevState => ({dropDownExpanded: !prevState.dropDownExpanded}))// no need// event.stopPropagation() } handleBodyClick = (event) => {console.log('body click')// no need// event.stopPropagation() } 復(fù)制代碼

    總結(jié)

    以上是生活随笔為你收集整理的从 Dropdown 的 React 实现中学习到的的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    jizz欧美性9 国产一区高清在线观看 | 亚洲精品自拍视频在线观看 | 国产视频黄 | 婷婷www | 天天爽人人爽 | 97超碰福利久久精品 | 在线免费高清一区二区三区 | 婷婷九月激情 | 久草.com| 这里只有精品视频在线观看 | 日韩激情视频在线观看 | 最新国产在线 | 亚洲欧美精品一区二区 | 国产亚洲一级高清 | 激情综合站 | 色婷婷亚洲精品 | 久久国产高清 | 黄网站色成年免费观看 | 亚洲一区二区三区在线看 | 国产精品va在线 | 国产小视频免费在线网址 | 人人狠狠 | 久久尤物电影视频在线观看 | 日本99干网 | 99热国内精品| 国产色妞影院wwwxxx | a级片久久久 | 在线观看免费 | 国产精品久久99综合免费观看尤物 | 日韩免费观看一区二区 | 欧美极品一区二区三区 | 热九九精品 | 亚洲日本一区二区在线 | 成人网中文字幕 | 国产亚洲精品成人av久久ww | 成人在线播放免费观看 | 精品亚洲欧美无人区乱码 | 人人插人人艹 | 久久亚洲美女 | 丁香在线 | 国产亚洲精品久久 | 国产亚洲视频在线 | 午夜精品一区二区三区在线观看 | 97狠狠干 | 国产视频网站在线观看 | 国产xx在线 | 天天干,天天操,天天射 | 黄色软件视频大全免费下载 | 91丨九色丨91啦蝌蚪老版 | 黄色影院在线免费观看 | 日日夜夜人人天天 | 在线观看日韩专区 | 精品国偷自产国产一区 | 99久久精品国产一区 | 婷婷亚洲综合五月天小说 | 久一在线 | 亚洲在线黄色 | 西西4444www大胆无视频 | 人人看人人 | 91爱爱免费观看 | 91麻豆网 | 黄色一级大片免费看 | 久久久伊人网 | 国产日产精品一区二区三区四区 | 96精品视频 | 久久99精品一区二区三区三区 | 热热热热热色 | 综合久久婷婷 | 91成人精品| 一区二区三区www | 欧美少妇xxx | 99视频在线免费 | 日韩中文字幕在线不卡 | 日韩电影在线观看一区二区三区 | 久久这里| 蜜臀av性久久久久av蜜臀妖精 | 激情丁香5月 | 国内精品久久久久影院优 | 91最新视频在线观看 | 成人羞羞视频在线观看免费 | 日韩精品中字 | 久久久www成人免费精品张筱雨 | 国产午夜精品理论片在线 | 久久久黄视频 | 国产成人三级在线观看 | 亚洲国产97在线精品一区 | 亚洲国内精品在线 | 国产精品美女久久久久久久 | 亚洲精品久久久久久久不卡四虎 | 五月综合在线观看 | 91社区国产高清 | 91精品国产自产老师啪 | 欧美成a人片在线观看久 | 91片网 | 黄色小说在线免费观看 | 超碰97人人干 | 日韩午夜电影院 | 国产精品一区二区白浆 | 色综合亚洲精品激情狠狠 | 亚洲高清久久久 | 成人在线一区二区 | 国产精品字幕 | 免费www视频| 探花视频在线观看免费 | 九色精品 | 亚洲三级黄 | 伊人开心激情 | 免费观看av网站 | 一区二区观看 | www.福利 | 色天天综合网 | 国产一级电影在线 | 在线国产日韩 | 在线精品视频免费播放 | 国产日韩精品在线 | www.国产在线视频 | 国产精品久久久久久一区二区三区 | 久草在线资源观看 | 美女网站视频免费黄 | 国产精品av久久久久久无 | 91精品久久久久久综合乱菊 | 日日夜夜网 | 一区二区免费不卡在线 | 精品国产乱码久久久久久1区2匹 | 精品伊人久久久 | 久久中文字幕导航 | 91最新网址在线观看 | 免费在线成人av电影 | 亚洲欧美成人网 | 91成人短视频在线观看 | 五月婷婷激情五月 | 99免费在线视频观看 | 91漂亮少妇露脸在线播放 | 亚洲成人动漫在线观看 | 欧美亚洲三级 | 黄色资源网站 | 亚洲精品国产精品乱码在线观看 | 夜夜高潮夜夜爽国产伦精品 | 欧美另类xxx| 亚洲永久精品在线观看 | 天天操天天操天天操天天操天天操天天操 | 少妇性bbb搡bbb爽爽爽欧美 | 久久精品九色 | 国产精品久久久网站 | 高清久久久久久 | av网站大全免费 | 高清av在线 | 亚洲女人天堂成人av在线 | 成人免费观看完整版电影 | 久久伦理| 国产视频一区在线播放 | 久久久久久久久久久福利 | 国产麻豆精品传媒av国产下载 | 亚洲视频在线观看免费 | 在线看中文字幕 | 亚洲一二视频 | av黄色亚洲 | 久久最新 | 五月天久久久久 | 欧美成人91| 久久综合九色综合欧美就去吻 | 欧美不卡在线 | 亚洲伦理一区 | 久久这里有精品 | 婷婷综合电影 | 福利视频精品 | 天天躁日日躁狠狠躁av中文 | 精品在线观看国产 | 丝袜av网站 | 久久久久久久影视 | 亚洲精品中文在线资源 | 射射射av | 丁香激情综合久久伊人久久 | 免费日p视频 | 黄色.com| 精品国产欧美一区二区三区不卡 | 超碰人人91 | 免费看的黄网站 | 四虎伊人 | 国产在线欧美日韩 | 黄色网在线播放 | 亚洲国产剧情av | 天天操天天操天天操天天操天天操 | 91视频这里只有精品 | 国产无遮挡又黄又爽馒头漫画 | 久 久久影院 | 国产午夜三级一区二区三桃花影视 | 精品久久久久久亚洲综合网站 | 国产中文字幕三区 | 日韩中文字幕网站 | 91成人破解版 | 91免费国产在线观看 | 不卡电影一区二区三区 | 激情六月婷婷久久 | 久草视频在线免费播放 | 亚洲综合成人av | 91视频最新网址 | 蜜臀久久99精品久久久无需会员 | 视频国产区 | 97人人精品| 丁香色天天| 很污的网站 | 啪啪小视频网站 | 91成人在线免费观看 | 国产视频1区2区 | 国产精品无av码在线观看 | 久久毛片网站 | 欧美成人h版电影 | 午夜国产一区二区 | 久久久久久久国产精品视频 | 婷婷在线看 | 99在线视频网站 | 久久久久欠精品国产毛片国产毛生 | 午夜18视频在线观看 | 久久在线 | 中文字幕在线观看一区二区三区 | a√天堂中文在线 | 久久精品欧美视频 | 蜜桃视频在线视频 | 在线黄频 | 欧美日韩国产一区二区三区在线观看 | 欧美a性| 黄色福利网 | 国产精品综合在线 | 国产热re99久久6国产精品 | 97超碰伊人 | 国产精品美女视频网站 | 久久久精品 一区二区三区 国产99视频在线观看 | 亚洲精品国产精品国自 | 99精品视频免费观看 | 日日夜夜天天干 | 超碰人人草 | 五月天综合网站 | 1024手机在线看 | 欧美999 | 99视频免费播放 | 色网免费观看 | 中文字幕一区二区在线观看 | 国产中文字幕视频在线观看 | 国产在线观看你懂的 | 91色视频| 日本黄色免费在线观看 | 国产精品日韩在线观看 | 丁香六月天婷婷 | 欧美少妇xxx | 99久久99久久免费精品蜜臀 | 激情综合一区 | 久久人人爽人人人人片 | 超级av在线 | 国产三级精品在线 | 97视频一区 | 久久成人国产精品免费软件 | 成年人电影免费看 | 最新日韩在线观看 | 欧美黑人巨大xxxxx | 激情视频一区二区三区 | www.久久久精品 | 国产裸体无遮挡 | 99久久精品费精品 | 99久久网站 | 久草在线视频免赞 | 欧美日本日韩aⅴ在线视频 插插插色综合 | 欧美激情综合五月色丁香 | 免费黄色网址大全 | 久久99久久99| 丝袜网站在线观看 | 亚洲激情综合 | av电影在线播放 | 久久综合婷婷国产二区高清 | 久久综合久久综合这里只有精品 | 97视频免费在线看 | 久99久视频 | 精品视频久久久 | 日日日视频 | 国产视频在线观看免费 | 久久艹综合| 亚洲一区在线看 | 制服丝袜在线91 | 成人中文字幕av | 成人免费在线观看av | 黄色av免费在线 | 伊人va| 国产小视频你懂的 | 国产99在线播放 | 天天操天天干天天操天天干 | 国产精品一区二区在线看 | 狠狠狠狠干 | 91在线资源 | 日本中文字幕电影在线免费观看 | 国产免费视频在线 | 美女网站久久 | 99在线高清视频在线播放 | 色www.| 精品成人网 | 日韩理论片在线 | 国产亚洲综合性久久久影院 | 天天鲁天天干天天射 | 国产精品成人一区二区三区吃奶 | 日韩免费不卡视频 | 日av免费 | 黄色毛片视频免费观看中文 | 成人欧美一区二区三区黑人麻豆 | 在线导航av| 亚洲美女精品区人人人人 | 成人国产电影在线观看 | 国产毛片在线 | 国内视频1区 | 中文字幕在线视频国产 | 婷婷色中文 | 中文字幕高清免费日韩视频在线 | 一区二区三区免费在线观看视频 | 日韩三级免费观看 | 九九国产视频 | 黄色一级免费电影 | 国产精品一区二区久久久 | 久久久精品国产免费观看同学 | 在线观看成人一级片 | 精品一区精品二区高清 | 人人要人人澡人人爽人人dvd | 国产九九九精品视频 | 色综合天天综合在线视频 | 深爱五月网| 亚洲永久国产精品 | 亚洲一区二区三区miaa149 | 久久午夜视频 | 六月婷操 | 国产裸体bbb视频 | 国产一区二区三区久久久 | 中文字幕视频在线播放 | 天天色影院 | 婷婷久久网站 | 久久九九影院 | 免费aa大片 | 男女激情片在线观看 | 一级黄色毛片 | 中文字幕高清 | 天堂av免费在线 | 97人人模人人爽人人喊网 | 亚洲欧洲日韩在线观看 | 亚洲在线免费视频 | 亚洲更新最快 | 国产女教师精品久久av | 精品国偷自产在线 | 亚洲国产美女精品久久久久∴ | 99久久精品免费看国产免费软件 | 91大片网站 | 99re热精品视频 | 国产成人高清在线 | 色天天| 大片网站久久 | 日韩特级毛片 | 91热视频 | 成人一级片免费看 | 色综合久久天天 | 欧美天天综合网 | 91亚洲免费| 天天搞天天干天天色 | 99热在线这里只有精品 | 久久精品国产一区二区电影 | av大全在线播放 | 亚洲黄色软件 | 国产成人a亚洲精品v | 天天干天天干天天干 | 日本精品视频在线播放 | 色婷婷综合久久久久中文字幕1 | 日韩一区二区三区在线看 | av免费网站观看 | 美女网站视频色 | 国产精品久久久久久久久久免费看 | 成人黄色资源 | 亚洲人在线| 欧美日本在线视频 | 日韩欧美一区二区在线 | 在线观看第一页 | 91高清免费 | 一区二区精品久久 | 国产成人精品亚洲日本在线观看 | 国产91精品一区二区绿帽 | 911亚洲精品第一 | 四虎在线永久免费观看 | 天天干,天天草 | 五月天久久综合 | 免费观看福利视频 | 天天爽天天做 | 色综合中文字幕 | 久久精品视频在线播放 | 手机在线欧美 | 欧美不卡视频在线 | 精品91久久久久 | 人人澡人人添人人爽一区二区 | 亚洲精品午夜久久久久久久 | 四月婷婷在线观看 | 亚洲成免费 | 日韩福利在线观看 | 成人免费在线网 | 在线最新av | 超碰在线98 | 免费福利片 | 久久久亚洲影院 | 免费成人黄色av | 欧美国产日韩在线视频 | 国产精品国内免费一区二区三区 | 久久蜜臀一区二区三区av | 久黄色 | 操处女逼 | 天天激情综合网 | 久久久精品免费看 | 性色xxxxhd| 日韩午夜一级片 | 在线观看日韩精品视频 | 99成人免费视频 | av片中文字幕 | 91大神一区二区三区 | 亚洲国产成人在线播放 | 精品国产视频一区 | 狠狠狠狠狠色综合 | 国产精品黄色在线观看 | 亚洲精品免费在线视频 | 中文字幕 国产视频 | 香蕉影院在线播放 | 国产99久久精品一区二区永久免费 | 美国av片在线观看 | 久久怡红院 | 日韩三区在线观看 | 中文字幕 91 | 国产精品久久片 | 成人精品福利 | 成人一级在线 | 国产一区二区免费看 | 69亚洲视频 | av电影免费 | 午夜123 | 天天艹天天爽 | 国产小视频在线免费观看视频 | 99热最新在线| 午夜黄色| 极品久久久 | 免费观看国产精品 | 91中文字幕在线视频 | 成人影视免费 | 色视频网站在线 | 天天射天| 国产一二区在线观看 | www四虎影院 | 国产精品无 | 五月激情婷婷丁香 | 一区二区伦理电影 | 亚洲日本一区二区在线 | 日韩v欧美v日本v亚洲v国产v | 在线中文字幕电影 | 久久情爱 | 在线影院 国内精品 | 在线观看一区二区视频 | 国产精品久久99综合免费观看尤物 | 欧美日韩中文字幕视频 | 久久综合久久综合久久综合 | 免费精品视频在线观看 | 又黄又爽的免费高潮视频 | 日韩中文字幕视频在线观看 | 国产成人免费网站 | 在线免费黄色av | 国产精品福利午夜在线观看 | 亚洲成人精品久久 | 91桃色在线播放 | 7799av| 欧美日韩在线免费观看 | 国产性天天综合网 | 97精品国产97久久久久久春色 | 精品毛片在线 | 玖玖爱在线观看 | 91精品国产99久久久久久久 | 久久国产亚洲精品 | 一区二区电影在线观看 | 91大神精品视频 | 精品一区 在线 | 国产在线91精品 | 91色影院 | 中文字幕影视 | 色综合久久久久 | 国产网站色 | 日日干激情五月 | 日韩av一区二区三区在线观看 | 亚洲免费a | 国产区在线视频 | 美女黄网久久 | 欧美精品乱码99久久影院 | 久久久久久久久久久网 | 久久九九精品 | 国产一级免费观看视频 | 欧美综合在线观看 | 国产1级毛片 | 欧洲高潮三级做爰 | 超碰在线观看av.com | 一区中文字幕在线观看 | 国产a国产a国产a | 91片在线观看 | 国产免费成人 | 亚洲精品www久久久久久 | 玖玖在线看| 久久视频国产 | 国产精品网红福利 | 中文字幕第一页在线 | 国产一级淫片在线观看 | 免费黄在线看 | 久久久免费电影 | 怡春院av| 四虎成人精品永久免费av九九 | 国产日韩欧美在线观看 | 日本一区二区三区视频在线播放 | 夜夜夜夜猛噜噜噜噜噜初音未来 | 欧美精品一二 | 国产不卡精品 | 天天干天天天天 | 国产精品11 | 日韩欧美高清一区二区三区 | 欧美日韩免费看 | 色视频网站在线观看一=区 a视频免费在线观看 | www.天天色.com | 超碰97公开 | 性色va | 97精品视频在线播放 | 国产色爽 | 久久精品国产亚洲精品2020 | 久久免费视频1 | 五月婷婷在线视频观看 | 7777xxxx | 久久艹欧美 | 国产成人精品网站 | 国产无套精品久久久久久 | 日韩视频1区 | 日韩欧美高清 | 久久视频国产精品免费视频在线 | 国产精品久久毛片 | 欧美成人h版 | 国产综合精品一区二区三区 | 日韩网站一区二区 | 精品久久久久久亚洲 | 亚洲精品玖玖玖av在线看 | 夜色成人av | 久久激情小说 | 一区二区三区四区五区六区 | 福利电影一区二区 | 91桃色视频 | 国产精品久久一卡二卡 | 久久视频精品 | 久草在线在线精品观看 | 欧美精品在线免费 | 亚洲另类交 | 在线播放精品一区二区三区 | 欧美激情va永久在线播放 | 天天亚洲 | 黄色软件在线观看 | 欧洲精品码一区二区三区免费看 | 国产小视频免费观看 | 综合激情av | 国产成人精品一区二区三区在线观看 | 亚洲视频精选 | 最新国产精品亚洲 | 中文字幕av电影下载 | 久久久久在线 | 97品白浆高清久久久久久 | 欧美成人中文字幕 | 六月色丁 | 日韩欧美在线免费观看 | 三级av免费看 | 久久艹久久 | 黄色软件在线观看免费 | 九九在线国产视频 | 亚洲v精品 | 成人黄色在线视频 | 久久久久久久久久电影 | 成人在线一区二区三区 | 亚洲资源在线网 | 久久久一本精品99久久精品66 | 欧美综合色 | 久久99热国产 | 黄色软件在线观看视频 | 成人一区不卡 | 毛片888| 欧美在线不卡一区 | 永久免费视频国产 | 国产亚洲婷婷免费 | 久久久久久久久久久久国产精品 | 亚洲区色 | 国产91勾搭技师精品 | 日韩av在线看 | 国产尤物在线观看 | 欧美激情另类 | 成人污视频在线观看 | 久久久一本精品99久久精品66 | 成人午夜黄色影院 | 日狠狠 | 久久午夜国产精品 | 久章草在线 | a天堂免费 | 9在线观看免费高清完整版在线观看明 | av黄色大片 | 一级淫片a| aaa亚洲精品一二三区 | 欧美精品久久久久久久久久 | 久久成人麻豆午夜电影 | 国产精品久久嫩一区二区免费 | 日韩高清在线一区二区三区 | 超碰人人在| 国产夫妻av在线 | 亚洲免费精彩视频 | 天天摸天天舔天天操 | 一区二区三区免费在线播放 | 黄色av网站在线观看 | 国产69久久久 | 中文字幕免费高清在线 | 国产在线黄色 | 美女黄濒 | 国产成人精品久久 | 草久久久 | 国产精品免费在线观看视频 | 波多野结衣视频一区 | 狠狠狠狠狠狠狠狠 | 欧美成年网站 | 美女视频网 | 麻豆传媒视频在线播放 | 欧美日韩高清国产 | 超碰免费观看 | 亚洲精品中文字幕在线 | 精品中文字幕在线 | 国产麻豆精品在线观看 | 免费网站污| 黄免费在线观看 | 久久综合欧美 | 日韩av网址在线 | 黄色av电影一级片 | 午夜视频在线观看一区二区三区 | 国产精品久久久区三区天天噜 | 日本资源中文字幕在线 | 激情丁香综合五月 | 91中文字幕在线 | 天天躁天天躁天天躁婷 | 国产成人久久精品77777综合 | 久久影视中文字幕 | 91精品国产欧美一区二区成人 | 91pony九色丨交换 | 成人精品一区二区三区电影免费 | 欧美日韩在线观看一区二区三区 | 视频一区久久 | 亚洲欧美在线观看视频 | 亚洲国产精品久久久久久 | 亚洲精品小区久久久久久 | 欧美日韩国产一区二区在线观看 | 天堂av在线网址 | 缴情综合网五月天 | 日韩午夜在线播放 | 91av社区 | 中文字幕日本电影 | 欧美综合久久久 | 人人爽人人爽人人片 | 91大神精品视频在线观看 | 麻豆精品视频在线观看免费 | 在线观看av小说 | 六月激情网 | 久久不卡国产精品一区二区 | 精品v亚洲v欧美v高清v | 日韩久久午夜一级啪啪 | 国产黄色免费在线观看 | 久久综合九色综合97_ 久久久 | 九九热re| 国产一区二区在线观看视频 | 久久九九影视网 | 久久精品牌麻豆国产大山 | 成人片在线播放 | 亚洲人成人99网站 | aaawww | 久草热久草视频 | 久久成人综合视频 | 久久超碰网 | 欧美性久久久久久 | 国产色久 | 在线看国产一区 | 国产午夜在线观看视频 | 久久精品久久久久久久 | 国产视频在 | 激情视频在线高清看 | 色多多在线观看 | 欧美性一级观看 | 在线成人一区二区 | 999热视频 | 中文字幕欧美三区 | 五月婷婷六月丁香激情 | 欧美一级黄大片 | 国产中文欧美日韩在线 | 国产精品亚洲片在线播放 | 亚洲精品456在线播放 | 24小时日本在线www免费的 | 黄色影院在线免费观看 | 97国产精品一区二区 | 久久精品国产亚洲精品2020 | 91精品国产综合久久福利 | 日本中文一区二区 | 欧美亚洲免费在线一区 | 国产成人精品一区二区在线观看 | 日韩簧片在线观看 | 欧美亚洲成人xxx | 最新一区二区三区 | 免费在线国产视频 | 午夜视频一区二区 | 亚洲aⅴ一区二区三区 | 亚洲精品在线观看不卡 | 97国产精品一区二区 | 麻豆一精品传二传媒短视频 | 免费欧美精品 | 一区二区三区免费在线观看视频 | 黄色三级久久 | 狠狠干电影| 伊人资源站| 中文字幕的| 少妇视频一区 | 亚洲黄色软件 | 欧美激情视频一二三区 | 久久高清毛片 | 欧美久久久影院 | 超碰在线观看97 | 色综合网| 国产精品区二区三区日本 | 久久久久久97三级 | 正在播放一区二区 | 国产亚洲va综合人人澡精品 | 在线观看国产一区 | 国产精品毛片久久 | av在线一 | 日日夜夜精品网站 | 久草电影免费在线观看 | 欧美一级电影片 | 97成人免费视频 | 国产在线精品一区二区三区 | 久久免费视频这里只有精品 | 97人人模人人爽人人喊网 | 四虎影视久久久 | 国产精品淫 | 人人爽人人插 | 亚洲六月丁香色婷婷综合久久 | 国产精品毛片一区二区在线 | 国产午夜精品久久 | 久久久久久中文字幕 | 日韩欧美视频一区二区 | 免费看国产黄色 | 亚洲高清在线 | 综合网中文字幕 | 国产一区二区在线播放视频 | 深爱开心激情 | 久久午夜国产精品 | 深爱开心激情 | 在线国产小视频 | 亚洲另类交 | 久久涩涩网站 | 国产精品久久久久久久久久直播 | 久久不卡av | 国产精品午夜久久 | 国产成人一二三 | 日本久久中文 | 在线免费av网 | 国产乱视频 | 午夜精品一区二区三区四区 | 黄色国产高清 | 久日精品 | 国产一级二级在线观看 | 久久99精品一区二区三区三区 | 美女一二三区 | 国产精品中文在线 | 九九有精品 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 婷婷久月 | 天天干,天天射,天天操,天天摸 | 免费看麻豆 | 狠狠伊人 | 亚洲精品网址在线观看 | 色老板在线 | 国产高清视频 | 91在线免费公开视频 | 久久久久麻豆v国产 | 黄色电影网站在线观看 | 色噜噜狠狠色综合中国 | 成人av电影在线 | 亚洲三级国产 | 久久资源总站 | 中文字幕一区二区三区乱码在线 | 国产群p视频 | 超碰97人人射妻 | 蜜臀av一区 | 右手影院亚洲欧美 | 国产黄在线看 | 亚洲欧洲精品一区二区精品久久久 | 91精品久久久久久粉嫩 | 免费观看mv大片高清 | 国产精品白虎 | 日韩av看片 | 日本性生活免费看 | 日韩精品一区二区三区在线视频 | 免费69视频 | 97综合在线 | 毛片视频电影 | 日韩二区精品 | 青青色影院 | 香蕉影视app| 夜夜夜夜猛噜噜噜噜噜初音未来 | 狠狠地日 | 精品欧美小视频在线观看 | 国产亚洲精品久久久久久久久久 | 五月天激情综合 | 国产亚洲精品美女 | 亚洲精品在线资源 | 亚洲国产视频在线 | 精品国产乱码久久久久久浪潮 | 精品毛片一区二区免费看 | 色综合久久久网 | 久久国产精品免费观看 | 亚洲精品字幕在线 | 国产精品亚洲人在线观看 | 日本久久电影 | 99在线观看精品 | 91香蕉国产在线观看软件 | 天干啦夜天干天干在线线 | a午夜在线| 日韩美女久久 | 婷婷色婷婷 | 99视频黄 | 久久精品在线免费观看 | 91九色在线观看视频 | 麻豆传媒一区二区 | 91av免费在线观看 | 久久综合久久综合这里只有精品 | 欧美大片www| 91福利区一区二区三区 | 日韩在线观看中文字幕 | 91超国产 | 91资源在线观看 | 亚洲资源网 | 欧美一级在线观看视频 | 国产精品久久久久久久久久新婚 | 久久香蕉国产精品麻豆粉嫩av | 97影视 | 99热 精品在线 | 亚洲狠狠操| 成人免费一级 | 97色在线观看免费视频 | 免费一级片在线观看 | 日韩欧美视频二区 | 在线亚洲欧美日韩 | 国产免费高清视频 | 精品成人a区在线观看 | 日韩大片在线播放 | 久草视频看看 | 国精产品999国精产品岳 | 日韩剧 | 国内精品国产三级国产aⅴ久 | 国产精品99精品久久免费 | 亚洲日本在线视频观看 | 日本中文字幕电影在线免费观看 | 午夜视频亚洲 | 91在线视频免费观看 | 成人国产网站 | 久久好看 | 亚洲一二三在线 | 天天天操操操 | 成人视屏免费看 | 91视频久久 | 天天干天天做 | 麻豆传媒电影在线观看 | 开心丁香婷婷深爱五月 | 国产高清成人 | www黄免费 | 午夜999| 成人免费91 | 激情影音先锋 | 成人久久久久久久久 | 久久99久国产精品黄毛片入口 | 国产欧美日韩一区 | 久久99精品国产麻豆宅宅 | 91av99| 亚洲在线网址 | 久久99国产综合精品免费 | 在线观看播放av | 欧美国产日韩激情 | 国产69精品久久久久99 | 成人h动漫精品一区二 | 亚洲另类视频在线 | 国产婷婷 | 国产黄色精品在线 | 视频高清 | 成人av电影免费观看 | 日韩在线播放欧美字幕 | 亚洲电影黄色 | 在线免费国产视频 | 在线精品在线 | 99色99| 99精品一区二区 | 91av九色| 免费在线观看国产黄 | 国产录像在线观看 | 日韩av在线看 | 国产成人精品一区二区三区网站观看 | 午夜视频免费播放 | av片中文字幕 | 丁香六月婷婷激情 | 久久公开视频 | 中文字幕视频观看 | 久久视频在线观看免费 | 国产一级做a爱片久久毛片a | 日本乱码在线 | 一区三区在线欧 | 国产成人一区二区三区在线观看 | 高清日韩一区二区 | 精品免费| 国产精品一区二区果冻传媒 | 成人影片免费 | 欧美日韩精品久久久 | 久久免费视频7 | 国产午夜精品一区二区三区嫩草 | 亚州av成人 | 蜜臀av夜夜澡人人爽人人 | 99免费在线播放99久久免费 | 亚洲好视频 | 亚洲久在线 | 中文字幕麻豆 | 国产.精品.日韩.另类.中文.在线.播放 | 992tv在线观看网站 | 少妇激情久久 | 亚洲精品久久久久中文字幕二区 | 狠狠色丁香久久婷婷综合丁香 | 区一区二区三在线观看 | 久久天堂影院 | 免费看黄的视频 | 亚洲 综合 国产 精品 | 极品国产91在线网站 | 天天干天天干天天射 | av中文在线影视 | 超碰97在线看 | 永久免费观看视频 | 久草综合视频 | 天天干,天天射,天天操,天天摸 | 中文字幕在线久一本久 | 国产91影院| 韩国一区二区三区在线观看 | 亚洲精品a区 | 97福利在线观看 | 国产亚洲在线观看 | 美女网站在线播放 | 成人av免费 | 久久综合久久综合久久 | 免费视频一区 | 奇米影视在线99精品 | 国产一区二区在线观看免费 | 天天操天天添 | 久久99国产精品视频 | 天堂av影院| 天天摸天天操天天爽 | 久久综合久久八八 | 开心激情婷婷 | 91丨精品丨蝌蚪丨白丝jk | 日韩极品在线 | 激情av网址| 曰韩在线| 久久99亚洲精品久久 | 日韩无在线 | 粉嫩av一区二区三区四区 | 亚洲h在线播放在线观看h | 欧美性做爰猛烈叫床潮 | 国产亚洲精品美女久久 | 夜夜躁日日躁狠狠久久av | 又黄又刺激视频 | 色婷婷综合久久久中文字幕 | 亚洲91精品| 一区二区三区高清在线观看 | 麻豆91在线| 亚州精品视频 | 性色视频在线 | 精品免费国产一区二区三区四区 | 五月天综合激情 | 久久视频一区 | 成人免费视频播放 | 国产高清视频免费 | 久久久精品 一区二区三区 国产99视频在线观看 | 91精品国产三级a在线观看 | 国产午夜av | 国产精品四虎 | a在线一区| 国产精品刺激对白麻豆99 | 天天插夜夜操 | 免费在线观看中文字幕 | 中日韩三级视频 | 爱情影院aqdy鲁丝片二区 | 国产一区二区三区高清播放 | 亚洲欧美日本A∨在线观看 青青河边草观看完整版高清 | 国产成人福利在线 | 婷婷在线不卡 | 成片视频免费观看 | 国产麻豆精品久久 | 久久新视频 | 伊人精品影院 | 在线视频 区 |