Skip to content

Releases: vanjs-org/van

1.5.2: Further size optimization

19 Aug 21:09
Compare
Choose a tag to compare

Gzipped bundle decreases to 1048 bytes (1.0kB) from 1050 bytes (1.0kB) (2 bytes decrease), while minified bundle decreases to 2022 bytes (2.0kB) from 2028 bytes (2.0kB) (6 bytes decrease). There is no behavior change in this release.

See the release announcement: #290 (comment)

1.5.1: Further size optimization

18 Jul 19:30
Compare
Choose a tag to compare

Gzipped bundle decreases to 1050 bytes (1.0kB) from 1055 bytes (1.0kB) (5 bytes decrease), while minified bundle decreases to 2028 bytes (2.0kB) from 2035 bytes (2.0kB) (7 bytes decrease). There is no behavior change in this release.

See the release announcement: #290 (comment)

1.5.0: Optimization on state derivations and side effects

14 Mar 16:50
Compare
Choose a tag to compare

1. Optimization on state derivations

Major optimization on how state derivations are being executed. For instance, with the code:

const a = van.state(3), b = van.state(5)
const s = van.derive(() => a.val + b.val)

If we have:

++a.val
++b.val

s will be derived only once.

And if we have:

++a.val
--a.val

The derivation of s will be skipped since a remains unchanged after ++a.val and --a.val.

2. rawVal property for State objects

rawVal property for State objects for getting the current value of the State object (peeking) without registering the state as a dependency of the binding function. For instance, the derived state: van.derive(() => a.rawVal + b.val) will be updated when b changes, but won't be updated when a changes.

See the release announcement: #290

1.4.1: Fix the minor type issue of van.state in van.d.ts

08 Mar 23:20
Compare
Choose a tag to compare

1.4.0: API simplification (less is more)

08 Mar 16:58
Compare
Choose a tag to compare

Simplify VanJS API by deprecating 4 rarely used functions:

  • van.tagsNS is merged into van.tags
  • van._ can be replaced by van.derive
  • van.val and van.oldVal are deprecated and can be replaced by client-side solution like: https://vanjs.org/tutorial#polymorphic-binding
  • Support van.state() in TypeScript to create dummy or uninitialized State objects

See the release announcement: #280

1.3.0: More robust dependency detection in binding functions

26 Feb 17:31
Compare
Choose a tag to compare

Improve the dependency detection in binding functions to avoid self-referencing side effect triggering infinite loop.

With this release, the following code will work perfectly:

van.derive(() => {
  if (checked.val) ++numChecked.val
})

See the release announcement: #275

1.2.8: Add support for custom event handlers.

23 Jan 23:14
Compare
Choose a tag to compare

In this release, we changed the implementation of event handlers in VanJS. Instead of registering event handlers via on... property, we changed to use addEventListener and removeEventListener to register and unregister event handlers.

As a result of the change, you can set custom event handlers via tag functions:

const {button, div, p} = van.tags

const dom = div(button({oncustom: () => van.add(dom, p("Event triggered!"))}, "Button"))
van.add(document.body, dom)

dom.querySelector("button").dispatchEvent(new Event("custom"))

See the release announcement: #246

1.2.7: Export 2 more types in `van.d.ts`.

14 Dec 06:01
Compare
Choose a tag to compare

In this release, we export 2 more types: Val and PropsWithKnownKeys in van.d.ts. Thanks @DanielMazurkiewicz for the contribution!

See the release announcement: #114 (comment)

1.2.6: Fix the type error message for `Props` in `van.d.ts`

01 Nov 16:14
Compare
Choose a tag to compare

1.2.5: Enable auto-completion for the `props` parameter of tag functions

27 Oct 04:14
Compare
Choose a tag to compare

Improved the type definition in van.d.ts to enable auto-completion for the props parameter of tag functions.

See the release announcement: #114 (comment)