首先恭喜React可以“迴歸”開源世界,Facebook協議中夾帶私貨的做法實在是讓人摸不著頭腦。
隨著FB宣佈React將要更改協議(https://code.facebook.com/posts/300798627056246/relicensing-react-jest-flow-and-immutable-js/),那麼就意味著之前我們的擔心就不在了,另外,在新版本的React中加入了更強大的特性,讓我們一起期待React 16吧!
造輪子學React
react作為一套工具,易用程度很高,我們可以用它做出很多牛逼的玩意。那麼今天我就造了一個輪子。
「拖拽元件」作為每一個平臺都有的元件,已經擁有各種各樣的實現,今天我為大家帶來的就是react版本的拖拽。
- 專案預覽地址:GitHub & BitBucket HTML Preview(看不到的話多重新整理幾次,暫時不支援手機,後續版本加入)
- 專案倉庫:215566435/React-dragger-R(如果喜歡,請不要吝嗇手上的星星)
通過造這個輪子我們學到什麼
- react 的基本使用
- 如何監聽使用者的滑鼠行為(addEventListener)
- css盒子模型
對於css盒子模型的理解,在做這個專案中會得到淋漓盡致的體現,為什麼呢?
當我們在設計「元素不能離開某個區域的api時」,對於css盒子模型必須要非常清楚。
- 一個元素的最外層是:margin
- 其次到:border
- 內填充:padding
- 寬度和高度:width & height
相信,通過這個輪子,大家一定會對css盒子模型有一個比較深入的理解,以及應用。
專案中使用?
當然可以,我已經把這玩意發到了npm上
npm install --save react-dragger-r
複製程式碼
就可以安裝了,使用也非常簡單,直接使用<Dragger>包裹住現有元素即可
import React from 'react'
import Dragger from 'react-dragger-r'
import ReactDOM from 'react-dom'
class LayoutDemo extends React.Component {
render() {
return (
<div>
<Dragger style={{ left: 50 }}>
<div>普通的拖拽元件</div>
</Dragger>
</div>
)
}
}
ReactDOM.render(
<div>
<LayoutDemo />
</div>,
document.getElementById('root')
);
複製程式碼
更多的文件?
所有對外屬性(props)都在上面了
另外,所有註釋都是中文的,歡迎檢視原始碼學習,希望對你的學習有幫助
更多輪子?
一個酷炫的react簡歷模版:預覽地址
倉庫地址:215566435/React-awesome-resume