preact v10.2.0 Release Notes

Release Date: 2020-01-07 // over 4 years ago
  • ๐Ÿš€ Happy belated New Years to everybody ๐ŸŽ‰ We hope you enjoyed the holidays and had some time off to recharge ๐Ÿ‘ Our very first release in 2020 brings two new features and the usual round of bug fixes ๐Ÿ’ฏ

    ๐Ÿ†• New useErrorBoundary hook

    ๐Ÿ‘€ There is a new hook called useErrorBoundary which allows you to catch errors that are thrown by any child components. It's essentially the hook version of componentDidCatch.

    // 1. parameter is null or the error that was caught// 2. paremeter can be called to reset the stateconst [err, reset] = useErrorBoundary();// Optional: You can pass a callback function that will// be executed when an error occurs:const [err] = useErrorBoundary(() =\> callMeMaybe());
    

    Usage example:

    // Example component that will throw an error on renderconst SomeComponent = () =\> { throw new Error("fail"); };const App = props =\> { const [err] = useErrorBoundary(); if (err) { return \<p\>Something went wrong...\</p\>; } else { return \<SomeComponent /\>; } };
    

    0๏ธโƒฃ Lazy works with non-default export

    0๏ธโƒฃ This PR was one of the smallest ones, but something that makes working with different kind of lazy loaded modules a lot easier. Previously lazy would always use the default export of the imported module. With this change it's now possible to use it with any export.

    // Look ma, no default exportconst LazyFoo = lazy(() =\> import("./Foo").MyComponent);
    

    ๐Ÿฑ On top of that we have the usual round of bug fixes. We'd like to thank everyone who reported them and helped us make Preact even better. Thank you so much!! ๐Ÿ‘

    ๐Ÿ”‹ Features

    ๐Ÿ› Bug Fixes

    Typings

    ๐Ÿšง Maintenance