From 21d7d3597104b84f54b7f760996358eb5b1164ab Mon Sep 17 00:00:00 2001 From: Ryan Carniato Date: Mon, 18 Mar 2019 22:21:59 -0700 Subject: [PATCH] Update to 0.4.2 --- CHANGELOG.md | 9 ++++++++- README.md | 13 ++++++++----- documentation/rendering.md | 10 ++++++---- package-lock.json | 8 ++++---- package.json | 6 +++--- 5 files changed, 29 insertions(+), 17 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 10daad4eb..44c5d64d8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## 0.4.2 - 2019-03-18 +- Add fallbacks for control flow +- Add new Portal Control Flow - This allows nodes to be rendered outside of the component tree with support for satelite ShadowRoots. +- Add new Suspend Control Flow - This renders content to a isolated document and display fallback content in its place until ready. Good for nested Async Data Fetching. +- Default node placeholders to comments (improved text interpolation) +- Added events binding for irregular event names + ## 0.4.0 - 2019-02-16 - Rename API to create__ to be semantically correct - Added implicit event delegation @@ -25,7 +32,7 @@ ## 0.3.0 - 2018-12-25 - New setState API inspired by Falcor paths to handle ranges. -- Reduction in API to remove State object functions and change to React-like Hooks API syntax. +- Reduction in API to remove State object functions and change to explicit methods. - Expose reconcile method to do deep differences against immutable data sources (previously automatically done for selectors). - Removed 'from' operators as limited usefulness with new patterns. diff --git a/README.md b/README.md index e9ae46273..5e043bda7 100644 --- a/README.md +++ b/README.md @@ -11,14 +11,17 @@ Solid.js is yet another declarative Javascript library for creating user interfa ### Key Features: * Real DOM with fine grained change detection (No Virtual DOM! No Dirty Checking Digest Loop!) -* JSX precompilation with support for standard JSX features and W3C Web Components -* Webcomponent friendly implicit event delegation +* JSX precompilation with support for standard JSX features +* Webcomponent friendly + * Implicit event delegation with Shadow DOM Retargeting + * Shadow DOM Portals + * Custom Element friendly Suspense flow * Declarative data * Data behavior is part of the declaration - * No need for lifecycle functions, and the large chains of conditionals they bring. - * Power of Hooks with no Hook Rules. + * Simple function Components with no need for lifecycle functions + * Power of Hooks with no Hook Rules * ES6 Proxies to keep data access simple and POJO like -* Expandable custom operators and binding directives. +* Custom binding directives. * Immutable interface with performance of mutability. * Performance amongst the fastest libraries. See Solid on [JS Framework Benchmark](https://github.com/krausest/js-framework-benchmark) diff --git a/documentation/rendering.md b/documentation/rendering.md index 5c90ead45..b3f4153b2 100644 --- a/documentation/rendering.md +++ b/documentation/rendering.md @@ -15,15 +15,17 @@ By default data is simply bound to expressions. If you wish to bind it for dynam ## Events -on_____ properties get added (addEventListener) as event handlers on the element. Camel Case events will be delegated by default and the second argument will be the model property or (nearest parent's). Use all lowercase for directly bound events. +on_____ properties get added (addEventListener) as event handlers on the element. Camel Case events will be delegated by default and the second argument will be the model property or (nearest parent's). Use all lowercase for directly bound native events. + +If you need to use non-lowercase or hyphenated event names use the events binding. ## Control Flow -While you could use a map function for loops and raw ternary operators of conditionals they aren't optimized. While perhaps not as big of a deal in the VDOM since Solid is designed to not execute all the code from top down repeatedly we rely on techniques like isolated contexts and memoization. This is complicated and requires special methods. To keep things simple and optimizable the the renderer uses a special JSX tag (<$>) for control flow. Current 'each' and 'when' are supported. +While you could use a map function for loops and raw ternary operators of conditionals they aren't optimized. While perhaps not as big of a deal in the VDOM since Solid is designed to not execute all the code from top down repeatedly we rely on techniques like isolated contexts and memoization. This is complicated and requires special methods. To keep things simple and optimizable the the renderer uses a special JSX tag (<$>) for control flow. Current 'each', 'when', 'portal', and 'suspend' are supported. ```jsx ``` -The library also includes a couple afterRender hooks for this element. +The library also includes a couple afterRender hooks. ### selectWhen(signal, handler) ### selectEach(signal, handler) diff --git a/package-lock.json b/package-lock.json index 559b2cd1c..554fc29f9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "solid-js", - "version": "0.4.1", + "version": "0.4.2", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -687,9 +687,9 @@ } }, "babel-plugin-jsx-dom-expressions": { - "version": "0.4.8", - "resolved": "https://registry.npmjs.org/babel-plugin-jsx-dom-expressions/-/babel-plugin-jsx-dom-expressions-0.4.8.tgz", - "integrity": "sha512-kfs4q+d1z1gLqp/d24kEaemqhof/OUvt64ya1ENOJjWRZ4gKjX9l21jdyHaCpcZC3K/ILReXr4Wli8whP13dxQ==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jsx-dom-expressions/-/babel-plugin-jsx-dom-expressions-0.5.0.tgz", + "integrity": "sha512-gSyMbRJwnpjdC21RoaLyAlQUAoe9QgEqy+DLXP0IHdmJr/LtRQk4VwOzHeXlEex4byW+arqrBRBvbYoGOq6G0A==", "dev": true, "requires": { "@babel/plugin-syntax-jsx": "^7.0.0" diff --git a/package.json b/package.json index d43c8df8d..f3757693b 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "solid-js", "description": "A declarative JavaScript library for building user interfaces.", - "version": "0.4.1", + "version": "0.4.2", "author": "Ryan Carniato", "license": "MIT", "repository": { @@ -20,10 +20,10 @@ "s-js": "~0.4.9" }, "peerDependencies": { - "babel-plugin-jsx-dom-expressions": "~0.4.8" + "babel-plugin-jsx-dom-expressions": "~0.5.0" }, "devDependencies": { - "babel-plugin-jsx-dom-expressions": "~0.4.8", + "babel-plugin-jsx-dom-expressions": "~0.5.0", "coveralls": "^3.0.3", "jest": "~24.5.0", "rollup": "^1.6.0",