问题标签 [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.
clojurescript - om 组件应该返回什么来不渲染?
是否可以编写一个不呈现任何内容的组件,例如,如果它的光标数据为空?
我不能做
if 子句返回 nil,这会导致错误消息
未捕获的错误:不变违规:ReactCompositeComponent.render():必须返回有效的 ReactComponent。您可能返回了 null、未定义、数组或其他一些无效对象。
我通过渲染一个空的跨度来度过难关,但这听起来很笨拙。我是否必须重构我的代码并从这个组件中“退出”测试?
clojurescript - 在浏览器中不关闭频道的后果?
我在客户端使用 Om,并且在应用程序的整个生命周期中,许多组件都会被安装/卸载。安装后,会打开各种通道(在 go 块中)。我也打算使用 IWillUnmount 来关闭它们。但首先,我的问题是:未封闭的渠道会发生什么?他们使用的资源是否被释放?从长远来看,不关闭通道(卸载组件时)会降低浏览器的性能吗?谢谢。
twitter-bootstrap-3 - 使用带有 Om 的引导下拉菜单
这就是我所拥有的:
问题是,一旦打开下拉列表,它就不会再隐藏了,因为它应该是单击它或其他地方时的样子。击键也不起作用。我相信这里遗漏了一些重要的东西,它可能是什么?我正在使用引导程序 3.1.1 和 jquery 1.11.0。
谢谢。
cqrs - 对 React 的 Flux 架构感到困惑 - waitFor
我对如何使用 React 有自己的看法,并且正在构建自己的框架,受 Om 的启发。我正在实现一些类似于 Flux 架构的东西,商店可以在某些事件上更新自己。
我不确定的是为什么在 Flux 架构中我们需要存储依赖项?
商店不应该是给定有界上下文的自包含数据持有者,就像我们对 CQRS 架构所做的那样?
在事件系统中,2 个 CQRS 组件最终可能持有相同的数据。我们是否表达了存储依赖关系以避免在存储中保存重复数据?
有人能想出一些非常具体的用例,其中需要存储依赖项并且问题很难以任何其他方式解决吗?我自己一个都找不到。
clojurescript - om get-props 与 get-state
我试图掌握两个 OM 函数 get-state 和 get-props 的用途。看看下面的例子:
您会注意到app
并state
包含确切的内容get-props
和get-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
clojurescript - Om 中的支持组件——它们是 React 组件还是 Om 组件?
我正在学习OM。
Om 文档 经常使用短语“支持 Om 组件” 。我相当确定这应该是“支持 React 组件”,这是Om Basic Tutorial中使用的一个短语。
有人可以验证吗?
编辑:其实我完全不确定。但我猜文档或教程都是错误的。
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!
?
reactjs - Om 但在 javascript 中
我要成为 David Nolen 的Om library的粉丝了。
我想在我们的团队中构建一个不太大的 Web 应用程序,但我无法真正说服我的队友切换到 ClojureScript。
有没有一种方法可以使用 om 中使用的原则但在 JavaScript 中构建应用程序?
我在想类似的事情:
- 用于不可变数据结构的immutable-js或mori
- 用于 CSP的 js-csp
- 只是应用状态原子的普通 javascript 对象
- 用于游标的不可变 js
- 用于跟踪应用程序状态并基于光标发送通知的东西
我正在为上面的第 5 个问题而苦苦挣扎。
有没有人冒险进入这个领域或有什么建议?也许有人尝试使用 immutable-js 构建 react.js 应用程序?
clojure - core.async pub/sub 在 Om (clojurescript) 中的行为很奇怪
为什么我评论时子组件中的计数器更新正常
而不是当我在下面代码的父组件中取消注释时?通过单击按钮更新计数器。
我想要完成的是发布/订阅机制,因此组件可以以分离的方式交换消息。
您可以通过创建一个新项目来复制它:
然后用下面的代码替换 core.cljs 并运行
在现代浏览器(例如最新的 Chrome)中访问 index.html 页面。
编码:
twitter-bootstrap - 带有 Om 的 ScrollSpy
我想让Om与 ScrollSpy 一起工作。
我目前正在使用此代码:
目前,它似乎一直有效,直到 Om / React.js 重新渲染 DOM。之后,ScrollSpy 停止工作。我想我知道为什么。根据Bootstrap ScrollSpy的说法:“当使用 scrollspy 并在 DOM 中添加或删除元素时,您需要像这样调用刷新方法:”
我应该怎么办?我想我想连接到 Om 并告诉它调用 ScrollSpy,如上所示。