javascript – React.js:为什么没有componentDidRender事件?

我刚刚开始使用React,有几次我曾经想过:“为什么没有componentDidRender事件?”.

假设我有一个将表呈现给DOM的组件,我想在此表上使用bootstrap-sortable以允许用户对他想要的任何列进行排序.在bootstrap-sortable的情况下,您需要在绘制表格后运行$.boostrapSortable(),以便初始化插件.

在我看来,React组件上有两个处理程序,可以考虑用于此目的:

> componentDidMount:这不起作用,因为在执行的这一点上似乎没有更新DOM.
> componentDidUpdate:这可能有效,但它不会在初始渲染上触发.

我并不是说React实际上缺少一个componentDidRender函数,因为我假设有一个完全合乎逻辑的解释,为什么它不存在.我只想问是否有人可以解释为什么这样的功能不存在,以及处理上述情况的“反应方式”是什么.

在componentDidMount中,您可以执行以下操作:this.getDOMNode()以获取对该组件的基础DOM的引用.因此,如果您确实希望将安装的组件与jQuery一起使用,则可以执行以下操作:

componentDidMount: function() {
    $(this.getDOMNode());
}

http://facebook.github.io/react/docs/working-with-the-browser.html

这是一个小提琴,显示jQuery作用于react组件的DOM节点:

http://jsfiddle.net/sa5e88ys/1/

如您所见,它会按预期为div添加边框.如果你仍然遇到问题,我猜你可能会使用你正在使用的插件而不是jQuery或做出反应?

相关文章
相关标签/搜索