Я пробовал Hyperapp.
По ряду причин я хочу использовать функцию h вместо JSX, я не буду разбираться здесь с причинами и причинами, но нетJSX, пожалуйста!
Дело в том, что когда я создаю экземпляр компонента с помощью JSX, все в порядке.
Пример компонента (и этот, и эквивалент JSX работают одинаково в примерах ниже):
const Examp = (props) => (
h("p",{},["this is an example"])
)
Пример представления с использованием JSX, при этом загружается компонент Examp, как и ожидалось (я вижу «это пример»):
const view = (state, actions) => (
<main>
<h1>JSX Example</h1>
<p>Begin</p>
<Examp/>
<p>End</p>
</main>
)
Пример представления с использованием h, это не работает, Я получаю пустой узел "examp" (обратите внимание на случай):
const view = (state, actions) => (
h("main",{},[
h("h1",{},["H Example"]),
h("p",{},["Begin"]),
h("Examp",{},[]),
h("p",{},["End"])
])
)
Похоже, что h меняет капитализацию узла, и это приводит к тому, что он не загружает компонент.
Я делаю что-то не так, если да, как мне с этим бороться?
Редактировать: посмотрев на исходный код Hyperapp;hyperapp использует document.createElement для создания узлов и всегда будет создавать строчные узлы, так как функциям компонентов требуется заглавная буква, когда-нибудь компоненты работали с h, или это было упущено?В этом случае Hyperapp требуется JSX: /