强大的拖拽组件:React DnD 的使用 react.js 10.6k 次阅读  ·  读完需要 25 分钟 17 文章首发我的个人blog : 原文链接 学习 React DnD 的最初原因是阅读<如何写一个拖拽日历组件>附的源码时,看不懂拖拽组件 React DnD 的相关代码,于是行动力极强地学习了React DnD这个组件. 本文会通过 在根组件(Contaier.jsx)展示将垃圾(Box.jsx)扔进垃圾桶(Dustbin.jsx)的例子,解释如何使用React DnD最基本的拖…
仓库地址:Dragact爽滑的拖拽组件 大家好,新年已经过去,大家又投入了繁忙的工作当中,由于我在国外,因此压根儿没有休息... 少说废话,上周一周的时间里,我陆陆续续的为Dragact组件进行了一系列更新,基本上做了一个大重构,而且做了一小部分性能优化. 新特性1:性能提升 通过对React 组件渲染的优化以及内部算法的优化,把大量的遍历和渲染都省掉. 优化前6s的性能 优化后6s的性能 大家可以看到,同样是跑6s,我们脚本计算时间,渲染时间,浏览器painting时间都有了很大幅度的提升.…
仓库地址:Dragact手感丝滑的拖拽布局组件 预览地址:支持手机端噢- 上回我们说到,Dragact组件已经进行了一系列的性能优化,然而面对大量数据的时候,依旧比较吃力,让我们来看看,优化之前的Dragact. 纵向堆叠着314个方块,插入时明显的卡顿,大约1秒的延迟 同样纵向堆叠着314个方块,插入时卡顿明显减少很多,可以接受 在实际生产过程中,可能不会有那么多物块,就拿我们项目的dashboard来说,整个屏幕最多只有10个方块,就已经是了不起了. 但是强迫症犯了,为了使得性能达到极致,再…
github地址:https://github.com/kirillmurashov/vue-drag-resize 安装: npm i -s vue-drag-resize 使用: <template> <div> <VueDragResize :isActive="true" :isResizable="false" > <img src="../assets/logo.png" v-drag hei…
前几天写的那个拖拽,自己留下的疑问...这次在热心博友的提示下又修正了一些小小的bug,也加了拖拽的边缘检测部分...就再聊聊拖拽吧 一.不要直接操作dom元素 react中使用了虚拟dom的概念,目地就是要尽量避免直接操作dom元素,所以我们在对dom元素进行操作的时候需要注意,我之前为了获取form的参数就直接用了var dragBox=document.getElementById('form')去找dom,但是其实记录from的初始位置,可以在其子组件更新父组件参数的时候调用.即在MyF…
这是可视化编辑器 Gaea-Editor 的第一篇连载分析文章,希望我能在有限的篇幅讲清楚制作这个网页编辑器的动机,以及可能带来的美好使用前景(画大饼).它会具有如下几个特征: 运行在网页 文档流布局,绝对定位同时支持 对插入的任何 React 组件都可以直接作为编辑元素拖拽到页面中 兼容 React-Native 的 web 组件可以让它生成 android 和 ios 原生页面 拥有 Gaea-Preview 套件,传入 Gaea-Editor 生成的 json,可以立刻生成页面 拥有 Ga…
在使用Grafana的过程中,发现Grafana关于视图页面中每一个面板都可拖拽,可随意放大放小,体验非常棒,F12看了Grafana的代码,看打包后的代码很像react,进一步css,看到有grid layout的字眼,然后尝试去搜了下有没有这方面的组件,一搜果然是有这样的组件的.首先看到的是react版本的组件,然后搜了下也有vue相关的. 以前也见过jquery的可拖拽组件demo,但是整体上感觉不如grid-layout优秀. [] VUE Grid Layout. []React Gr…
Sortable.js 介绍 https://segmentfault.com/a/1190000008209715 项目中遇到的问题: A - 我需要在项目的拖拽组件中,使用背景 1 - 想到的第一个办法就是通过index根据列表索引添加背景 问题:拖拽是可以换动顺序的,所以不管我怎么拖动,背景的顺序并不不会变. 2 - 第二个办法是,通过动态给列表绑定ID,通过id来添加背景,这总没问题了吧 问题: 很奇怪的问题,我现在也没有理解,换动顺序以后,查看HTML元素,确实id是根据顺序变换了的,…
最近工作不是很忙,学习之余想整理一些代码出来,首先想到的就是是js拖拽. 两年前去某公司面试的时候,曾经被问过这个问题,如何在页面上拖放元素,尽管现在看起来很简单,但当时的我半点思路都没有,面试想当然失败了. 这两天趁空闲整理出一个自由拖拽的jquery插件:jquery.jsDrag.js. js拖拽主要用到了鼠标三个事件:mousedown.mousemove.mouseup. mousedown:鼠标按下 mouseup:鼠标松开 mousemove:鼠标移动 mousedown和clic…
vue拖拽组件开发 创建临时vue项目 先查看node和npm版本,怎么安装就不多多bb了 再安装vue-cli npm install vue-cli -g //全局安装 vue-cli 检测是否安装成功 vue list 创建项目 vue init webpack "项目名称" 下面懒得介绍了,直接用小姐姐一张图,通道=>程序员是粉色的 开始写拖拽组件 组件就暂且命名为 JuDrag吧.然后再在index.vue里面引入,代码如下: <template> <…