Whether you're looking to start from scratch, add a new framework or library to your tool belt, or wanting to share your opinions on the latest and greatest in web development, this is the place for you! Find articles, discussions, and links to external resources for all things JS here at WWT.
React from Facebook has been around for over 7 years now and is the most common framework used on teams at Application Services.
Redux is often used alongside React to manage data and app state that needs to be accessed across multiple areas in the app, although it is not required and pertains more to applications that reach a certain level of complexity.
Some of the more recent features added to React include the Hooks API, which allows for the creation of functional components that can maintain state and references. For an overview of hooks, consider watching this PluralSight course.
Google launched Angular 2.0 in 2016, but its predecessor, AngularJS, is over 10 years old. AngularJS remains very common in more older applications, but the vast majority of new projects are started Angular instead due to the better workflow, tooling, and performance. Angular is the second most common frontend framework used on teams Application Services, and AngularJS also saw its fair share of use, although it is more common to see conversions from AngularJS to Angular now.
Angular is a strongly opinionated framework, opting for TypeScript by default for type safety and including a robust command line interface and compiler. Angular also provides its own utilities for tasks such as routing and requests, and is very often coupled with ngrx, the Angular wrapper of rx.js that allows for state management and data flow.
One of the major recent updates to Angular was the release of Ivy, a new view engine for translating Angular components into what you see in the browser. Ivy is meant to allow for smaller bundle sizes, faster performance, and simpler applications.
For a talk around what you can do to help organize and structure an Angular project, check out this PluralSight video.
Coupled with NodeJS is NPM, the Node Package Manager, which provides access to over 1 million packages ranging from simple utilities to frontend frameworks to command line functions. NPM also provides ways to run commands once (NPX) and uses the package.json for quick project-level scripts.
Some helpful libraries to be familiar with when working in NodeJS are:
fs - File System, allows for reading, writing, and watching files and directories.
child_process - Allows for creation of other process, including other instances of node for multithreading.
express - ExpressJS is probably the most common library uses for creating simple servers and APIs.
hapi - HapiJS is a strong alternative to ExpressJS.
http-server - If all you need is a static file server, this command line utility can get you up and running very fast.
Vue is actually the framework of choice for WWT's IT department and has recently been used by a couple of teams in Application Services. Vue is often described as striking a balance between the free-form world of React and the rigid guidelines of Angular. Learn more about Vue in this PluralSight course.
The main concern Svelte as a framework tries to address is eliminating framework overhead, or rather to move that overhead into a compile step. Svelte focuses on converting components into Vanilla HTML, CSS, and JS for better performance and smaller package sizes. Learn more about Svelte in this PluralSight course.
Deno (Node backwards) is a relatively recent creation by the original creator of NodeJS, Ryan Dahl. The goal is to create NodeJS the way it “should” have been: much more aligned with how browsers have been set up. It runs in TypeScript for type safety, all features that could be a security concern are locked by default, and ESM is used (import syntax) rather that CommonJS's require. Visit deno.land for more information.