With WinJS 4.0 Microsoft has focused on keeping it compatible with the latest versions of the major browsers, targeting the Universal Windows Platform (UWP), and integrating with other JavaScript frameworks.
As anything else within Microsoft, WinJS has prepared for Windows 10 by supporting Edge. They have also strived to target Microsoft’s Universal Platform which comes with many sizes, form factors, and input types. For this purpose, new components have been introduced and old ones have been improved to behave better in a responsive design setting.
The most important new components are SplitView, ToolBar and ContentDialog. The SplitView divides the viewing area into two panes: the left one is the navigational panel and can slide in/out from the left edge, while the right one is the content panel. The ToolBar is similar to what other mobile operating systems have, containing a number of buttons for executing commands related to the current view. ContentDialog is a modal dialog that includes buttons that can be navigated with the Tab key. A new utility, XYFocus, enables users to navigate multiple components horizontally or vertically in an irregular grid with the arrow keys.
Acknowledging the importance of other JavaScript frameworks and libraries, Microsoft has submitted code that makes WinJS compatible with AngularJS, React, Bootstrap and Knockout. A demo sample shows how to build WinJS apps with Angular including demos for two way data binding, and FlipView or ListView combined with Angular arrays. Wrappers for the frameworks mentioned can be downloaded from WinJS GitHub’s page.
While WinJS runs on all major browsers, the status page outlines a number of issues across these browsers especially for new components, but the number of tests not passing is relatively small.
There are a number of breaking changes, mostly renames and some deprecations. For more details on what’s new we recommend the change log, or this blog post.