【问题标题】:Mixing Pure React Components with Om Next将纯 React 组件与 Om Next 混合
【发布时间】:2016-02-27 21:57:09
【问题描述】:

假设我可以通过某个库访问纯 react.js 组件:

var MyPureJavaScriptComponent = React.createClass({
  render: function() {
    //...
  }
});

但我希望使用 om.next,其中 React 组件是通过 defui 宏构建的:

(defui MyComponent
  Object
  (render [this]
          (div nil "Hello, world!")))

问题:MyPureJavaScriptComponent 转换为om.next 的最佳方法是什么?如果它可以包含在自己对defui 的调用中,这样MyPureJavaScriptComponent 与其他所有 om.next 组件处于相同的基础上,那将是非常好的(至少在美学上)。这可能吗(这是否是最好的方法)?

【问题讨论】:

    标签: clojure reactjs clojurescript om


    【解决方案1】:

    您可以返回任何 React 组件以渲染到您的 Om.next 树中,这是一个示例:

    (defui MyComponent
      Object
      (render [this]
        (dom/div nil
          (dom/h1 nil "Hello")
          (js/React.createElement js/MyPureJavaScriptComponent #js {:prop "value"}))))
    

    【讨论】:

    • 难道没有比在渲染函数中创建它更好的地方,例如在挂载时?但是这种方式很简单,而且 React 不会做任何不必要的真实渲染。
    • @ChrisMurphy 这是推荐的方式,普通的 React JSX 语法只是将它抽象出来,但检查源代码,你会看到到处都是 React.createElement,从 React 主页查看这个示例(检查已编译的 JS 选项卡)dropbox.com/s/9asp89ebb201el8/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-14
    • 2017-06-30
    • 2011-03-20
    • 1970-01-01
    • 2020-12-18
    • 1970-01-01
    相关资源
    最近更新 更多