问题标签 [om]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1936 浏览

clojurescript - om 组件应该返回什么来不渲染?

是否可以编写一个不呈现任何内容的组件,例如,如果它的光标数据为空?

我不能做

if 子句返回 nil,这会导致错误消息

未捕获的错误:不变违规:ReactCompositeComponent.render():必须返回有效的 ReactComponent。您可能返回了 null、未定义、数组或其他一些无效对象。

我通过渲染一个空的跨度来度过难关,但这听起来很笨拙。我是否必须重构我的代码并从这个组件中“退出”测试?

0 投票
1 回答
290 浏览

clojurescript - 在浏览器中不关闭频道的后果?

我在客户端使用 Om,并且在应用程序的整个生命周期中,许多组件都会被安装/卸载。安装后,会打开各种通道(在 go 块中)。我也打算使用 IWillUnmount 来关闭它们。但首先,我的问题是:未封闭的渠道会发生什么?他们使用的资源是否被释放?从长远来看,不关闭通道(卸载组件时)会降低浏览器的性能吗?谢谢。

0 投票
2 回答
1520 浏览

twitter-bootstrap-3 - 使用带有 Om 的引导下拉菜单

这就是我所拥有的:

问题是,一旦打开下拉列表,它就不会再隐藏了,因为它应该是单击它或其他地方时的样子。击键也不起作用。我相信这里遗漏了一些重要的东西,它可能是什么?我正在使用引导程序 3.1.1 和 jquery 1.11.0。

谢谢。

0 投票
2 回答
2830 浏览

cqrs - 对 React 的 Flux 架构感到困惑 - waitFor

我对如何使用 React 有自己的看法,并且正在构建自己的框架,受 Om 的启发。我正在实现一些类似于 Flux 架构的东西,商店可以在某些事件上更新自己。

我不确定的是为什么在 Flux 架构中我们需要存储依赖项?

商店不应该是给定有界上下文的自包含数据持有者,就像我们对 CQRS 架构所做的那样?

在事件系统中,2 个 CQRS 组件最终可能持有相同的数据。我们是否表达了存储依赖关系以避免在存储中保存重复数据?

有人能想出一些非常具体的用例,其中需要存储依赖项并且问题很难以任何其他方式解决吗?我自己一个都找不到。

0 投票
1 回答
708 浏览

clojurescript - om get-props 与 get-state

我试图掌握两个 OM 函数 get-state 和 get-props 的用途。看看下面的例子:

您会注意到appstate包含确切的内容get-propsget-state返回,乍一看似乎非常多余。

现在,并不是所有的生命周期函数(例如IWillMount)都传递state参数,所以当你在这种情况下需要它时,很明显你需要调用om/get-state它来访问它。

但是,对于应用程序状态,它看起来与我不同。您始终可以在所有函数中使用应用程序状态光标,因为它是函数的顶级参数,即使您在回调中需要它,您也可以将其传递。大多数示例/教程都使用了,get-state但我找不到get-props. get-props 是多余的吗?我会在哪里使用它?

还有一件事与这个结构有关。在 React 中,我们有 props 和 state,但在 OM 中,我们有 app-state 和 state(内部状态),这让我在学习 OM 时感到困惑。Props 在 React 中从父级传递给子级,同样在 OM 中,我们将应用状态(游标)传递给子级。以下意见是否有效?

  • app-state 是 React 的 props 的 OM 等价物
  • props 是 React 只是数据,而 OM 中的 app-state 是包裹在游标中的数据
  • 这意味着 OM 没有道具,只有应用状态游标,因此该函数get-props真正意味着get-app-state
0 投票
2 回答
343 浏览

clojurescript - Om 中的支持组件——它们是 React 组件还是 Om 组件?

我正在学习OM。

Om 文档 经常使用短语“支持 Om 组件” 。我相当确定这应该是“支持 React 组件”,这是Om Basic Tutorial中使用的一个短语。

有人可以验证吗?

编辑:其实我完全不确定。但我猜文档或教程都是错误的。

0 投票
1 回答
281 浏览

clojure - 即使在交换之后 Om 也不会反映变化!应用状态

使用 Light Table,我如何告诉 Om 在评估修改后的 Om 函数后重新渲染 DOM?

强行换车!对主状态原子没有影响: (swap! app-state identity)

使用 显式骑行路线(swap! app-state assoc :current-page :about)并使用 回家(swap! app-state assoc :current-page :home),反映对主页的更改。

我的浏览器已连接到 Light Table,我可以触发警报,例如(js/alert "hi")

再次调用 root 也会触发渲染:

为什么 Om 不会在 app-state atom 上触发渲染swap!

0 投票
2 回答
12839 浏览

reactjs - Om 但在 javascript 中

我要成为 David Nolen 的Om library的粉丝了。

我想在我们的团队中构建一个不太大的 Web 应用程序,但我无法真正说服我的队友切换到 ClojureScript。

有没有一种方法可以使用 om 中使用的原则但在 JavaScript 中构建应用程序?

我在想类似的事情:

  1. 用于不可变数据结构的immutable-jsmori
  2. 用于 CSP的 js-csp
  3. 只是应用状态原子的普通 javascript 对象
  4. 用于游标的不可变 js
  5. 用于跟踪应用程序状态并基于光标发送通知的东西

我正在为上面的第 5 个问题而苦苦挣扎。

有没有人冒险进入这个领域或有什么建议?也许有人尝试使用 immutable-js 构建 react.js 应用程序?

0 投票
1 回答
486 浏览

clojure - core.async pub/sub 在 Om (clojurescript) 中的行为很奇怪

为什么我评论时子组件中的计数器更新正常

而不是当我在下面代码的父组件中取消注释时?通过单击按钮更新计数器。

我想要完成的是发布/订阅机制,因此组件可以以分离的方式交换消息。

您可以通过创建一个新项目来复制它:

然后用下面的代码替换 core.cljs 并运行

在现代浏览器(例如最新的 Chrome)中访问 index.html 页面。

编码:

0 投票
1 回答
412 浏览

twitter-bootstrap - 带有 Om 的 ScrollSpy

我想让Om与 ScrollSpy 一起工作。

我目前正在使用此代码:

目前,它似乎一直有效,直到 Om / React.js 重新渲染 DOM。之后,ScrollSpy 停止工作。我想我知道为什么。根据Bootstrap ScrollSpy的说法:“当使用 scrollspy 并在 DOM 中添加或删除元素时,您需要像这样调用刷新方法:”

我应该怎么办?我想我想连接到 Om 并告诉它调用 ScrollSpy,如上所示。