packages/taro-platform-harmony/src/runtime-framework/solid/README.md
基于 solid/universal 的 Solid 渲染器,连接 @tarojs/runtime 的 DOM 实例,相当于小程序版的 solid-js/web,暴露的 API 也和 solid-js/web 保持一致。
需要新增 babel-presets-solid 插件配置,用于转换 SolidJS 的 JSX 语法。
module.exports = {
presets: [
['taro', {
framework: 'react',
ts: true,
}],
['babel-preset-solid', {
// 指向 SolidJS 的 reconciler
moduleName: '@tarojs/plugin-framework-react/dist/runtime/reconciler',
generate: 'universal',
}]
]
}
useState => createSignaluseEffect => createEffect
useReducer => createSignal + a functionuseRef => { current: <value> } + a variable
ref={myRef} to ref={myRef.current}.marginRight) => kebab-case(margin-right)React.useRef => createSignal React.createRef => createSignal React.useLayoutEffect => [createRenderEffect, onCleanup] React.useMemo => createMemo ReactDOM.unstable_batchedUpdates => batch
React.Component => renderer.createComponent ReactDOM.render => renderer.render h => React.createElement => renderer.createElement
ReactDOM.findDOMNode
createRoot createContext useContext