概要

Draft.js是一个使用React构建富文本编辑器的框架,使用不可变的模型并且抽象了各种浏览器之间的差异。

不管你是简单的给几行可编辑的文本添加样式,还是构建一个复杂的完整的富文本编辑器,使用 Draft.js都很容易做到。

这个链接 是2016年2月React.js Conf上介绍Draft.js的内容。

安装

Draft.js发布在npm上,依赖React和React DOM,安装时这两个包也要装好。

npm install --save draft-js react react-dom

# 或者

yarn add draft-js react react-dom

Draft.js使用es6语法开发,一些浏览器上不支持。可以使用一些shim和polyfill来解决。

npm install --save draft-js react react-dom babel-polyfill

# 或者
yarn add draft-js react react-dom es6-shim

Learn more aboutusing a shim with Draft.

注意api改变

在开始之前,我们需要注意最近我们要改变Draft中Entity的API。在v0.10.0版本中我们同时支持新api和旧api。在版本v0.11.0中我们将去掉对旧api的支持。如果你有兴趣帮助解决问题或者跟进项目进展,可以订阅issue 839

使用

import React from 'react';
import ReactDOM from 'react-dom';
import {Editor, EditorState} from 'draft-js';

class MyEditor extends React.Component {
  constructor(props) {
    super(props);
    this.state = {editorState: EditorState.createEmpty()};
    this.onChange = (editorState) => this.setState({editorState});
  }
  render() {
    return (
        <Editor editorState={this.state.editorState} onChange={this.onChange} />
    );
  }
}

ReactDOM.render(
  <MyEditor />,
  document.getElementById('container')
);

因为 Draft.js 支持 unicode,所以你必须把下面的meta标签添加到你html页面的<head></head>中。

<meta charset="utf-8" />

在渲染编辑器前我们需要引用Draft.css 。Learn more aboutwhy.

接下来我们将学习Draft.js的基础api和你能用Draft.js做什么事情。

results matching ""

    No results matching ""