「实战」纯React实现拖拽组件

首先恭喜React可以“回归”开源世界,Facebook协议中夹带私货的做法实在是让人摸不着头脑。

随着FB宣布React将要更改协议(https://code.facebook.com/posts/300798627056246/relicensing-react-jest-flow-and-immutable-js/),那么就意味着之前我们的担心就不在了,另外,在新版本的React中加入了更强大的特性,让我们一起期待React 16吧!

造轮子学React

react作为一套工具,易用程度很高,我们可以用它做出很多牛逼的玩意。那么今天我就造了一个轮子。

「拖拽组件」作为每一个平台都有的组件,已经拥有各种各样的实现,今天我为大家带来的就是react版本的拖拽。

通过造这个轮子我们学到什么

  • react 的基本使用

  • 如何监听用户的鼠标行为(addEventListener)

  • css盒子模型


对于css盒子模型的理解,在做这个项目中会得到淋漓尽致的体现,为什么呢?


当我们在设计「元素不能离开某个区域的api时」,对于css盒子模型必须要非常清楚。

  1. 一个元素的最外层是:margin

  2. 其次到:border

  3. 内填充:padding

  4. 宽度和高度: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')
);

更多的文档?

文档:215566435/React-dragger-R

所有对外属性(props)都在上面了

另外,所有注释都是中文的,欢迎查看源码学习,希望对你的学习有帮助

更多轮子?

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,016评论 25 708
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,198评论 4 61
  • 凌晨两点半,店里客人不多了。南方的冬天,清冷的夜雨刚刚洗刷了空无一人的街道,方格窗户上留下透明断续的水珠。窗外,衰...
    c50d5f95981b阅读 338评论 0 1
  • 可能写了许多东西,也不会有人来看,可是你很多时候却发现,你不写在这里,可能连个写的地方都没有,所以无所谓有人看...
    sun_小璐阅读 201评论 0 0
  • 今天看到同学发了一条说说:拒绝手机,从我做起。说说一发,底下爆炸式的评论,当然更多的是吐槽和讽刺。但是他有一个回复...
    季多晴阅读 410评论 0 3