问题标签 [hyperhtml]
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.
hyperhtml - hyperHTML 似乎无法调用(附加?)onload 事件
我正在尝试在使用 hyperHTML 时有条件地动态加载其他 JavaScript。我已将失败范围缩小到onload
事件。
这是一个最小、完整和可验证的示例的尝试:
如您所见notie.alert
,即使script
正确插入,也永远不会调用它。
这个过程使用带有addEventListener('load',
and的 vanilla JS 可以正常工作appendChild(
。
javascript - HyperHTML - 是否可以在不重新渲染整个组件 DOM 的情况下更新组件状态?
我有以下 hyperHTML 组件,一切都按预期工作,唯一的问题是整个组件 DOM 在每次this.setState()
调用时都会重新呈现。
我的问题:
有没有办法在不重新渲染整个组件 DOM 的情况下更新 DOM 上的通知字符串?
javascript - 简单的 HyperHtmlElement 示例什么也不显示
我看不到 FireFox 57 的任何输出,同时期待 'HyperHtmlElement' ...
... 我究竟做错了什么 .. ?
谢谢。
hyperhtml - 使用 hyperHTML 在多个地方连接全局数据的最佳方式是什么?
我正在开发一个重用大量常量的应用程序。我知道我可以使用连线 ID 在多个地方使用相同的数据,但我不确定是否应该在每次要使用该数据时创建一个新的全局唯一 ID。
这是我正在使用的简化示例:
我知道除非我指定一个电线 ID,否则option
s 只会出现在一个地方。我可以:${this.name}
用作电汇 ID,但我必须弄清楚如果有两个同名的人该怎么办,以及如果我想要一个表格来表示“你最喜欢的颜色是什么?” 另一个是“你的衬衫是什么颜色的?”,我必须为此制作另一个唯一的 ID。
有没有办法以某种方式确定线路 ID 的范围,还是我必须制作全球唯一的?
javascript - 内容更改后如何将 hyperHTML 重新渲染到同一元素
我正在尝试支持与React.Children相同类型的东西
我的代码看起来像
所以API看起来像
我正在使用MutationObserver重新呈现内容更改
但是如果内容改变了。hyperHTML 说它渲染到正确的元素.. 但元素保持其 innerHtml(无更新)
我可以看到已删除,然后设置了内容,但再次<!--_hyper: -2001947635;-->
设置渲染和hyperHTML.bind无济于事
任何想法都会很棒!谢谢
更新
解决上述问题的方法是调用,hyperHTML.bind``
然后使用 hyperHTML 进行正常渲染即可
上下文- 我正在使用 hyperHTML 创建自定义元素库(超元素)
我的用例:我在一个混合技术项目中工作(有些人使用 jQuery)
旁注,关于为什么。我想支持部分模板之类的东西
部分模板示例:
输出:
这是在您控制的元素中设置自定义内容的一种用途
目前我通过 3 方工作/重新渲染设置内容
https://jsfiddle.net/k25e6ufv/16/
我现在的问题是:它正在渲染另一个自定义元素并将传递内容传递给子元素
看起来 hyperHTML 正在将子元素的内容设置在元素的前面,并在不设置内容的情况下创建元素
向下滚动到源代码的底部以查看实现!
https://jsfiddle.net/k25e6ufv/14/
Rending crazy-cats :
电流输出:
期望的输出:
hyperhtml - 组件列表(两次接线)
如果我正在渲染返回 hyperhtml 的函数列表,我最终会连线两次,因为在某处省略它是行不通的,并且 bind 只会在父级上有意义,然后需要考虑弱引用,因此无论哪种方式都很尴尬。
例子
这里 recur 将连线 recur,然后再次返回连线结果。因此,如果使用电线两次缠绕。
mobx - Mobx 观察者模式支持
Mobx 提供仅与 react 兼容的观察者包,它使存储知道正在使用数据,并在更改时重新运行组件。你如何复制 mobx 观察者的支持?
javascript - 通过 HyperHTML 使用外部库
我们正在寻求将 HyperHTML 集成到聊天应用程序中。
目前,我们使用 moment.js 和 timeago 作为上次聊天发布的人类可读时间戳。聊天列表中的最后一个消息预览也经常更新,但不如时间戳那么频繁。所有这些组件都是单独的,但也每个组件都包装在一个 li 中。
因此,将 hyperHTML 与将时间标签附加到 DOM 并从 DOM 渲染的外部库(如 TimeAgo)一起使用,我们想知道最佳实践吗?如何在 hyperHTML 模板文字中使用 timeago() 函数?
hyperhtml - 有没有一种方法/解决方法可以在不使用 Shadow DOM 的情况下在 hyperHTML 中使用插槽原理?
我喜欢 hyperHtml 和 lit-html 的简单性,它们使用“标记模板文字”来仅更新模板的“可变部分”。简单的 javascript,不需要虚拟 DOM 代码和推荐的不可变状态。
我想尝试在模板中支持原则的情况下尽可能简单地使用带有 hyperHtml 的自定义元素<slot/>
,但没有 Shadow DOM。如果我理解正确,插槽只能使用 Shadow DOM?
有没有一种方法或解决方法可以<slot/>
在不使用 Shadow DOM 的情况下在 hyperHTML 中使用该原理?
虽然有好处,但我不喜欢使用 Shadow DOM 的一些原因:
- 我想看看我是否可以转换我现有的 SPA:所有必需的 CSS 样式现在都存在于 SASS 文件中,并被编译为 1 个 CSS 文件。在 Shadow DOM 组件中使用全局 CSS并不容易,我不想解开 SASS(现在)
- Shadow DOM 有一些性能成本
- 我不希望大型 Shadow DOM polyfill 有插槽(webcomponents-lite.js:84KB - 未缩小)