Releases: sycamore-rs/sycamore
Releases · sycamore-rs/sycamore
v0.9.0
Release Post: https://sycamore.dev/post/announcing-v0-9-0
Migration Guide: https://sycamore.dev/book/migration/0-8-to-0-9
What's Changed
- Change NAME_SPACE to NAMESPACE by @sokratisvas in #482
- Improve binding ergonomics for
RcSignal
by @danielalvsaaker in #489 - Use fully qualified method calls in macro for bound signals by @danielalvsaaker in #499
- fix(bug): #500 fix and #501 fix by @danielnehrig in #502
- Rename derive proc-macro
Prop
toProps
by @alexisfontaine in #503 - Fix MDN documentation link of SVG elements by @alexisfontaine in #505
- Rename the derive macro helper attribute
builder
toprop
by @alexisfontaine in #504 - Make
NodeRef
Reactive by @wainwrightmark in #508 - Add data binding for valueAsNumber property by @wainwrightmark in #511
- Fix js-framework-benchmark CI by @lukechu10 in #520
- Fix mismatched link in examples by @nthnd in #524
- Simplify the TodoMVC example code by @lukechu10 in #526
- adding
set_fn
andset_fn_silent
by @blainehansen in #529 - Remove redundant set_value in todomvc example in #530
- Make
create_ref
only allowT: 'static
by @lukechu10 in #519 - Update dependencies to latest by @lukechu10 in #510
GenericNode
v2 by @lukechu10 in #521- Remove legacy component syntax and introduce
Component
trait by @lukechu10 in #533 - Change CSS
color-scheme
with dark mode is toggled on website by @lukechu10 in #534 - Prevent re-running effects inside themselves by @lukechu10 in #539
- (Runtime) Templates by @lukechu10 in #536
- Make
Option<T>
prop fields optional by default by @danielalvsaaker in #531 - Implement ToView manually for types by @lukechu10 in #541
- Fix missing
View::new_dyn_scoped
check at the root by @lukechu10 in #549 - Rename css.md to styling.md and add info on integrations with CSS frameworks by @lukechu10 in #550
- Adopt a logo! by @lukechu10 in #551
- Typed event data + async event handlers by @lukechu10 in #553
- Replace context
HashMap
withVec
and add benchmark by @lukechu10 in #555 - Allow passing through attributes on components by @wingertge in #548
- Wasm bindgen example by @wa1aric in #558
- Add unique ID generation hook by @wingertge in #565
- fixes bind macro problem by @blainehansen in #569
- API docs correction for Functions hydrate_to: "use hydrate_to" can now read and link as "use hydrate". by @StarSapien in #579
- chore: fix formatting and clippy lints by @lukechu10 in #582
- Update render util tests and add nested dyn test by @lukechu10 in #583
- Fix Issue #572 by @wingertge in #573
- Centered badges by @simonhyll in #589
- Add signal equivalent of
create_ref_unsafe
by @wingertge in #586 - Do not add values to the arena drop list if not necessary by @lukechu10 in #552
- Avoid exponential blowup in size of Builder type by @sapphire-arches in #591
- Update syn to v2 by @lukechu10 in #593
- Prepare v0.9.0-beta.1 by @lukechu10 in #594
- Fix builder
bind_value
andbind_checked
calling wasm functions in SSR by @lukechu10 in #608 - Fix #562 / ignore the query parameters when matching a path to a route by @Miroito in #575
- Fix navigating to an anchor and route matching with hash parameters by @lukechu10 in #610
- Update Trunk, NodeJS, and MSRV to 1.65 by @lukechu10 in #611
- Update routing.md by @jhutchins in #613
- fix view! parser to handle dashed attributes with Rust keywords (#620) by @mekanoe in #624
- Update MSRV to 1.72 by @lukechu10 in #625
- Reactivity v3! (Part 1) 🎉 by @lukechu10 in #612
- fix typos & small grammatical errors by @iiiii7d in #627
- Reactivity v3 (Part 2) by @lukechu10 in #626
- Update README.md example with new reactivity system] by @lukechu10 in #629
- Bump postcss from 8.4.23 to 8.4.31 in /website by @dependabot in #628
- Dont suggest wee-alloc in docs by @lukechu10 in #630
- Make batch affect both memos and effects by @lukechu10 in #631
- Repace the
Memo
struct withReadSignal
by @lukechu10 in #632 - Update all dependencies by @lukechu10 in #633
- v0.9.0-beta.2 by @lukechu10 in #634
- Run everything through prettier by @lukechu10 in #635
- Update components documentation for v0.9 by @brynnjmccormick in #637
- Add a CONTRIBUTING.md and remove old contributing docs by @lukechu10 in #636
- Fix panic about current not being a child of parent in clean_children by @lukechu10 in #639
- Re-export
wasm-bindgen
,js-sys
, and event types fromweb-sys
by @lukechu10 in #642 - Add missing docs and more doctests by @lukechu10 in #643
- Move web-sys features from sycamore to sycamore-web by @lukechu10 in #644
- Update Router example to use non-referenced ReadSignal by @noxxxxxious in #647
- Refactor view! by extracting parsing logic from codegen into a new crate by @lukechu10 in #649
- Improve generation of HTML for the hydrate example. by @lukechu10 in #657
- Add underline and bold for navigation improvements by @Hmikihiro in #660
- Temporary fix for book broken navigation by @Hmikihiro in #661
- Update MSRV to 1.73.0 by @lukechu10 in #663
- Remove deploy draft workflow by @lukechu10 in #664
- Update trunk to v0.19.1 and disable minification for hydrate example by @lukechu10 in #665
- Maintenance: fix all the new clippy warnings by @lukechu10 in #666
- Add
track_caller
attribute toprovide_context*
anduse_context
functions by @lukechu10 in #667 - Add 'SubmitEvent' to re-exported events from web_sys crate by @dyanechi in #668
- Replace CountAPI as it got taken down. by @JasonLovesDoggo in #674
- Bump braces from 3.0.2 to 3.0.3 in /website by @dependabot in #675
- Rename the tag type alias by @mtshr in #677
- View Backend v2! (Attempt 2) by @lukechu10 in #679
- Remove
target_wasm32
folder by @lukechu10 in #680 - Update some old docs by @lukechu10 in #681
- Fix
set_fn
to not be silent by @lukechu10 in #682 - v0.9.0-beta.3 by @lukechu10 in #683
- Fix missing version in dependency by @lukechu10 in #684
- fixup: missing keys in Cargo.toml by @lukechu10 in #685
- Update codecov action by @lukechu10 in #686
- fixup: wrong version in docs by @lukechu10 in https://github.com/sycamore-rs/sycam...
0.9.0-beta.4
v0.9.0-beta.4 (#698) Prepare 0.9.0-beta.4
0.9.0-beta.3
v0.9.0-beta.3 (#683)
0.9.0-beta.2
v0.9.0-beta.2 (#634)
0.9.0-beta.1
v0.9.0-beta.1 (#594)
✨ 0.8.2
✨ 0.8.1
✨ 0.8.0
Release post: https://sycamore-rs.netlify.app/news/announcing-v0.8.0
-
⚡️ Features
- Add
.map()
utility toSignal
. - Reactive Primitives v2 🎉! Read the blog post for more information.
- Suspense and async components.
- Async transitions.
- Type-checked HTML element tags.
- Builder API v2!
- SVG support.
- Implement
AddAssign
and friends forSignal
. - Add
Signal::modify
to mutate signal. - Add
NoHydrate
andNoSsr
utility components. - Add
from_web_sys
function. - Add
prop:
directive toview!
- Add
dangerously_set_inner_html
to the builder API. - Print hydration key for hydration mismatch.
- New view syntax for components. Unifies the syntax used for setting attributes/props in elements and components.
- Add
-
🛠 Fixes
- Make
SsrNode
attribute order stable. - Call cleanup callbacks in
map_keyed
andmap_indexed
- Create a nested reactive scope if
cx
is used inside dyn expression. - Fix and simplify
SsrNode
andHydrateNode
codegen inview!
. - Fix hydration for top-level dynamic views.
- Fix setting
class
on SVG elements. - Fix parsing of legacy components in child views.
- Fix destructuring in async component props.
- Add the
<body>
tag to the HTML elements list. - Fix
scope_depth
to return0
for root scope. - Fix removing old nodes from parent.
- Remove Unit
()
implementation ofProp
. - Add
Debug
implementations to all public items. - Fix boolean attribute list.
- Allow fragments and dynamic views in
Router
. - Fix hydration error for
Router
.
- Make
-
🎁 Examples and Documentation
-
🚅 Performance
-
Internal
- Update license to 2022.
- Make website responsive and mobile-friendly.
- Use in-tree
js-framework-benchmark
implementation for benchmarking. - Split the
sycamore
crate intosycamore-core
andsycamore-web
. - Simplify
reconcile_fragments
implementation. - Update MSRV to 1.63 and remove some
unsafe
s fromsycamore-reactive
.
✨ 0.7.1
✨ 0.7.0
Release post: https://sycamore-rs.netlify.app/news/announcing-v0.7.0
-
⚡️ Features
- Implement
TryFromSegments
forT: Route
. This allows the creation of nested routers. See the docs for more information about usage. - Make parenthesis optional in
cloned!
macro. The following syntax is now accepted, in addition to the old syntax:// Before cloned!((my, variables, to, clone) => move || { ... }) // After cloned!(my, variables, to, clone => move || { ... })
- Builder API. Check out the
hello-builder
example for more usage details. - Make
wasm-bindgen-interning
a feature. This feature is enabled by default but can be opted-out which would disablewasm-bindgen/enable-interning
. Opting-out can lead to a slight decrease in binary size at the cost of performance. - Introduce
render_get_scope
function. This allows accessing (and disposing of) theReactiveScope
created by the render function. - Hydration support. To enable hydration, replace calls to
render
andrender_to
withhydrate
andhydrate_to
. - Add
#[track_caller]
touse_context
. This makes it much easier to debug the"context not found for type"
error. - Better debugging utilities for inspecting the
ReactiveScope
hierarchy.
- Implement
-
🛠 Fixes
- Prevent data binding from panicking when not in browser.
- Extend
ReactiveScope
into scopes that are siblings. - Fix
Lerp
implementation for integers. - Fix context API not working through
Indexed
andKeyed
. - Update TodoMVC example to use context API.
- Remove
autocomplete
from the list of boolean attributes for codegen. - Fix parenthesizing of expressions in
view!
macro interpolation syntax. - Fix context API when effects are re-executed.
- Allow constant generics to be used with
#[component]
macro.
-
📃 Documentation
-
Internal
-
🚨 BREAKING CHANGES
- Refactor
GenericNode
and introduceHtml
trait. AddIS_BROWSER
constant toHtml
.. For projects that target HTML, it is recommended to use theHtml
trait instead ofGenericNode
. This will ensure that it cannot be used on rendering backends that are not for HTML. To check if code is executing on the browser, access theHtml::IS_BROWSER
constant on the generic rendering backend. This also slightly changes theGenericNode
interface which is why it is a breaking change but would most likely not influence you. - Make
GenericNode
generic over the event type. The event type is now an associated type to allow rendering backends to use another type fromweb_sys::Event
. - Rename
Template
toView
andtemplate!
toview!
. For most cases, a simple search-and-replace will suffice, replacing all instances ofTemplate
toView
and all instances oftemplate!
toview!
. - Rename
StateHandle
toReadSignal
. The old name was somewhat confusing and did not reflect thatStateHandle
was just a read-only signal.
- Refactor