Support for locating errors in the source code directly on the device when exceptions occur when using MTS. (#1019)
This requires Lynx engine v3.4 or later.
Fix the "main-thread.js exception: ReferenceError: __webpack_require__
is not defined" error in HMR. (#985)
This error occurred when setting output.iife: true
, which is the default value in @lynx-js/rspeedy
v0.9.8.
Support the 'main-thread' directive as an alias for 'main thread'. (#970)
Reduce calls to __AddInlineStyle
by pass non-literal object directly to __SetInlineStyles
. (#941)
Fix type error when using Suspense
with "jsx": "react-jsx"
. (#854)
Support lazy bundle in ReactLynx testing library. (#869)
Fix a bug in HMR that snapshots are always updated because the same unique ID check is not performed correctly. (#869)
Fix missing types of key
on components when using "jsx": "react-jsx"
. (#872)
Reverts #239: "batch multiple patches for main thread communication" (#649)
This reverts the change that batched updates sent to the main thread in a single render pass.
Add support for batch rendering in <list>
with async resolution of sub-tree properties and element trees. (#624)
Use the experimental-batch-render-strategy
attribute of <list>
:
rename @lynx-js/test-environment to @lynx-js/testing-environment (#704)
Auto import @lynx-js/react/experimental/lazy/import
when using import(url)
(#667)
Auto import @lynx-js/react/experimental/lazy/import
when using <component is={url} />
(#666)
Fixed a race condition when updating states and GlobalProps simultaneously. (#707)
This fix prevents the "Attempt to render more than one <page />
" error from occurring during normal application usage.
Fix error like Unterminated string constant
when using multi-line JSX StringLiteral. (#654)
OnPipelineStart arg count must == 1
on app load. (#669)Some of the timing keys are renamed to match the naming convention of the Lynx Engine. (#438)
update_set_state_trigger
-> updateSetStateTrigger
update_diff_vdom_start
-> updateDiffVdomStart
update_diff_vdom_end
-> updateDiffVdomEnd
diff_vdom_start
-> diffVdomStart
diff_vdom_end
-> diffVdomEnd
pack_changes_start
-> packChangesStart
pack_changes_end
-> packChangesEnd
parse_changes_start
-> parseChangesStart
parse_changes_end
-> parseChangesEnd
patch_changes_start
-> patchChangesStart
patch_changes_end
-> patchChangesEnd
hydrate_parse_snapshot_start
-> hydrateParseSnapshotStart
hydrate_parse_snapshot_end
-> hydrateParseSnapshotEnd
mts_render_start
-> mtsRenderStart
mts_render_end
-> mtsRenderEnd
Add testing library for ReactLynx (#74)
Refactor: Improved naming for list operation related types. Renamed UpdateAction
interface to ListOperations
. (#592)
Support using "jsx": "react-jsx"
along with "jsxImportSource": "@lynx-js/react"
in tsconfig.json
. (#545)
This configuration enhances TypeScript definitions for standard JSX elements,
providing type errors for unsupported elements like <div>
or <button>
.
fix: JSX elements with dynamic key={expr}
now wrapped in wrapper
element to prevent merging. (#547)
Fix lynx.loadLazyBundle
is not a function (#568)
fix: flushDelayedLifecycleEvents stack overflow error (#540)
Do some global var initialize in hydrate, which fixes error like cannot read property '-21' of undefined
and some style issue. (#461)
fix: ensure ref lifecycle events run after firstScreen in the background thread (#434)
This patch fixes an issue where ref lifecycle events were running before firstScreen events in the background thread async render mode, which could cause refs to be undefined when components try to access them.
fix: prevent multiple firstScreen events when reloading before jsReady
(#377)
Optimize the bundle size by eliminating unnecessary code when the lazy bundle is not utilized. (#284)
Improved rendering performance by batching updates sent to the main thread in a single render pass. This optimization reduces redundant layout operations on the main thread, accelerates rendering, and prevents screen flickering. (#239)
BREAKING CHANGE: This commit changes the behavior of Timing API. Previously, timing events were fired for each update individually. With the new batching mechanism, timing events related to the rendering pipeline will now be triggered once per render cycle rather than for each individual update, affecting applications that rely on the previous timing behavior.
Add missing typing for useErrorBoundary
. (#263)
You can now use useErrorBoundary
it in TypeScript like this:
Modified the format of data sent from background threads to the main thread. (#207)
Support Lynx SSR. (#60)
Support new css properties: offset-path
and offset-distance
(#152)
Fix 'SystemInfo is not defined' error when using MTS and not importing anything manually from the react package. (#172)
Fix not a function
error when using lazy bundle without MTS. (#170)
fix: gesture config not processed correctly (#175)
After this commit, gesture config like minDistance
should work as expected.
Support NPM provenance. (#30)
feat: add compiler only version of addComponentElement, it does not support spread props but have no runtime overhead, use it by: (#15)
Fix error createRef is not a function
(#16)
Support MIXED
target for worklet, it will be used by unit testing frameworks, etc. (#27)
Support return value for runOnBackground()
and runOnMainThread()
. (#119)
Now you can get the return value from runOnBackground()
and runOnMainThread()
, which enables more flexible data flow between the main thread and the background thread.
1abf8f0: Support estimated-main-axis-size-px
NOTE: This changes behavior of transformReactLynx
so certain features (like lazy bundle) will be BROKEN if version mismatch.
1abf8f0: Support JSXSpread on <list-item/>
component.
NOTE: This changes behavior of transformReactLynx
so certain features (like lazy bundle) will be BROKEN if version mismatch.
<page/>
is not used.9ce9ec0: Fix argument cannot be accessed correctly in default exported MTS functions.
99a4de6: Change TypeScript configuration to improve tree-shaking by setting verbatimModuleSyntax: false
.
This change allows the bundler to properly remove unused imports and type-only imports, resulting in smaller bundle sizes. For example:
See TypeScript - verbatimModuleSyntax for details.
createRoot
cannot find module './snapshot/event.js'
error avoid tree-shaking event.js
in development.compat
in transform to false
__MAIN_THREAD__
and __BACKGROUND__
macro as an alternative to __LEPUS__
and __JS__
.4e94846: Fix variables being renamed in MTS.
297c6ea: Fix the issue that when runOnBackground()
's parameter is not legal, it will still report an error in the rendering process of the background thread even though it won't actually be called.
763ad4e: Stop reporting ctx id in the ctx not found
error.
480611d: Avoid error from changing theme.
3bf5830: Avoid overriding processEvalResult
.
useLynxGlobalEventListener
to make useInitData
addListener as early as possible. This will fix the issue that onDataChanged
has been called before the event listener is added.@lynx-js/types
.a30c83d: Add compat.removeComponentAttrRegex
.
NOTE: This feature is deprecated and will be removed in the future. Use codemod instead.
5f8d492: Deprecate compat.simplifyCtorLikeReactLynx2
ca3a639: Fix cssId
collision issue when hash generated @jsxCSSId
for jsx snapshot hit the range of auto increased cssId of @file
.
8fbea78: Fix 'main thread' and 'background only' directives not working in export default declarations.
ff18049: Bump swc_core v0.109.2.
This would add /*#__PURE__*/
to the output of TypeScript enum
. See swc-project/swc#9558 for details.
background.js
.6730c58: Change the snapshot transform result by adding cssId
and entryName
.
Remove Scoped CSS(Default) | Scoped CSS |
---|---|
|
|
This requires @lynx-js/react-rsbuild-plugin
v0.5.1 to work.
efbb7d4: Support Gesture.
Gesture Handler is a set of gesture handling capabilities built on top of the Main Thread Script. It currently supports drag, inertial scrolling, long press, and tap gestures for <view>
, <scroll-view>
, <list>
, and <text>
. In the future, it will also support multi-finger zoom, multi-finger rotation, and other gesture capabilities.
b2032eb: Better DCE.
Now DCE can remove dead branch:
45edafa: Support using import()
with variables.
@lynx-js/react
v0.100.0ReloadTemplate
.