1.0.6 • Published 1 year ago
react-jsmind v1.0.6
jsMind React 版
 
 
 
 
此项目是基于jsMind封装的 React 版本,方便开发者直接以组件形式使用。
- 安装
 
npm install react-jsmind
// # or
yarn add react-jsmind- 基本使用
 

import ReactJsMind from 'react-jsmind'
import 'react-jsmind/dist/index.min.css'
const App = () => {
  const mindRef: any = useRef(null)
  const [editable, setEditable] = useState(true)
  const getData = () => {
    if (mindRef.current) {
      const data = mindRef.current.getData()
      alert(JSON.stringify(data))
    }
  }
  const NodeTreeData = {
    meta: { name: 'mind图', author: 'Your Name', version: '0.8.5' },
    format: 'node_tree',
    data: {
      id: 'root',
      topic: '😊根节点',
      children: [
        {
          id: '1',
          topic: '子节点1',
          direction: 'left',
          expanded: true,
          'background-color': '#03BF8A',
          children: [
            { id: '2', topic: '子节点2' },
            { id: '3', topic: '子节点3' },
          ],
          data: { width: 100, type: 'rect' }, // 自定义业务数据
        },
      ],
    },
  }
  const enableEdit = () => {
    setEditable(!editable)
  }
  const onNodeClick = (node) => {
    console.log('点击的节点', node)
  }
  return (
    <div style={{ width: '100%', height: 800 }}>
      <div className='btns'>
        <button onClick={getData}>获取数据</button>
        <button onClick={enableEdit}>{editable ? '关闭' : '开启'}编辑</button>
      </div>
      <ReactJsMind ref={mindRef} options={{ editable }} data={NodeTreeData} onClick={onNodeClick} />
    </div>
  )
}特性说明
默认情况下,ReactJsMind 组件会自动渲染一个 id 为
jsmind_container的容器且充满父容器,因此需要在父容器定义宽高。ReactJsMind 组件
options参数配置请参考jsMind 参数配置;data参数配置请参考jsMind 数据格式ReactJsMind 组件支持
onClick、onMouseOver、onMouseOut、onMouseLeave、onMouseLeave、onContextMenu、onKeyUp、ondblClick、onExpand事件- ReactJsMind 组件只对外暴露了如下几种常用方法, 可以通过 
mindRef.current调用, 如果想要其他方法,通过mindRef.current.getInstance()获取到jsMind实例后调用,具体参考jsMind 节点操作方法 
| 方法名 | 参数 | 描述 | 
|---|---|---|
| screenShot | 导出为 png 图片 (不含水印) | |
| getData | 获取脑图数据 | |
| getSelectedNode | 获取选中的节点 | |
| expandAll | 展开所有节点 | |
| addNode | (parent_node, node_id, topic, data, direction):parent_node:父节点node_id:唯一标识topic: 名称data: 数据direction: 'left' | 'right' | 添加节点 | 
| removeNode | node | 删除节点 | 
| setNodeColor | (nodeId, bg_color, fg_color):bg_color:React.CSSProperties'color' 背景色fg_color: React.CSSProperties'color' 前景色 | 设置节点背景色 | 
| setNodeFontStyle | (nodeId, size, weight, style):size: React.CSSProperties'fontSize',weight: React.CSSProperties'fontWeight'style: React.CSSProperties'fontStyle' | 设置节点字体样式 | 
| getInstance | 获取 jsMind 实例 |