麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JavaScript > 正文

React根據(jù)寬度自適應(yīng)高度的示例代碼

2019-11-19 15:12:06
字體:
供稿:網(wǎng)友

有時對于響應(yīng)式布局,我們需要根據(jù)組件的寬度自適應(yīng)高度。CSS無法實現(xiàn)這種動態(tài)變化,傳統(tǒng)是用jQuery實現(xiàn)。

而在React中無需依賴于JQuery,實現(xiàn)相對比較簡單,只要在DidMount后更改width即可

Try on Codepen

需要注意的是在resize時候也要同步變更,需要注冊個監(jiān)聽器

class Card extends React.Component { constructor(props) {  super(props);  this.state = {   width: props.width || -1,   height: props.height || -1,  } } componentDidMount() {  this.updateSize();  window.addEventListener('resize', () => this.updateSize()); } componentWillUnmount() {  window.removeEventListener('resize', () => this.updateSize()); } updateSize() {  try {   const parentDom = ReactDOM.findDOMNode(this).parentNode;   let { width, height } = this.props;   //如果props沒有指定height和width就自適應(yīng)   if (!width) {    width = parentDom.offsetWidth;   }   if (!height) {    height = width * 0.38;   }   this.setState({ width, height });  } catch (ignore) {  } } render() {  return (   <div className="test" style={ { width: this.state.width, height: this.state.height } }>    {`${this.state.width} x ${this.state.height}`}   </div>  ); }}ReactDOM.render( <Card/>, document.getElementById('root'));

參考資料

React生命周期

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 欧美人与zoxxxx另类9 | 久久久久久久午夜 | 国产99一区二区 | 日韩精品二区 | 国产精品探花在线观看 | 国产在线一级片 | 久久久成人精品视频 | 久久久久久久免费视频 | 91精品国产乱码久 | 偷偷草网站 | 亚洲午夜不卡 | 久久久www成人免费精品 | 久久久久久久久日本理论电影 | 欧美黄色试片 | 成人综合一区二区 | 国产九九| 91短视频版高清在线观看免费 | 午夜精品久久久久久久99热浪潮 | 日韩视频在线免费 | 免费在线成人网 | 久久精品中文字幕一区 | 欧美日韩网站在线观看 | 日韩视频高清 | 国外成人在线视频 | zzzzzzzxxxxxx日本人| 欧美18xxxx | 国产高潮失禁喷水爽到抽搐视频 | 色播视频在线播放 | 中文字幕激情视频 | 欧美精品18 | 欧美一级片在线 | 国产亚洲精品视频中文字幕 | 天天草夜夜| 草草视频免费 | 精品一区二区久久久久 | 国产一区二区不卡 | 香蕉在线看 | 国产亚洲高清在线精品不卡 | 亚洲成人激情av | 久草导航 | 性大片1000免费看 |