使用剪贴板进行反应而不使用节点

时间:2014-12-16 15:46:04

标签: reactjs

我一直在为剪贴板找到解决方案或插件。我找到了react-zeroclipboard和react-clipboard,用于复制和粘贴用法。显然,这些需要nodejs来运行吗?还有其他插件不允许我使用节点吗?

由于

2 个答案:

答案 0 :(得分:2)

您可以使用onCut onCopy onPaste events

React.createClass({
    handlePaste: function(event) {
        _.each(event.clipboardData.items, function(item) {
            item.getAsString(function(string) {
                console.log('Pasted: ', string)
            })
        });
    },
    render: function () {
        return (
            <input type="text" onPaste={this.handlePaste} />
        );
    }
});

答案 1 :(得分:2)

实际上,它们都不能在node.js中工作。它们被打包为commonjs模块并与npm一起分发,就像几乎所有的反应组件一样。 Node.js需要使用browserify或webpack构建一个或多个组件。

# install dependencies
npm init
npm install --save react-clipboard browserify react uglify-js

# development with source maps
./node_modules/.bin/browserify -d -r react-clipboard -r react -o bundle.js

# for production
NODE_ENV=production \
  ./node_modules/.bin/browserify -r react-clipboard -r react \
| ./node_modules/.bin/uglifyjs -m > bundle.min.js

如果您将其包含在页面上,则可以执行以下操作:

var React = require('react');
var ReactClip = require('react-clipboard');

然后,随着应用程序的增长,您可以添加更多依赖项,并且需要更多功能,并使用package.json维护其版本。


注意:某些软件包还提供独立的全局构建和/或发布给bower等,但如果您避免使用npm和browserify / webpack,则会限制您的选项。