The objective of this discussion is to expose you to some of the popular frameworks that are built on top of JavaScript or React. The goal is not for you to know how to use these, but simply understand what their intended usage is in case you want to use it at some point in time.
For each of these, I want you to answer the following questions for the class:
- Why does this exist? Why did people spend hundreds of hours of their time to build this?
- For what types of projects would you use this for?
- Gatsby
- Storybook
- i18n.js
- MathJax / KaTeX
- D3.js
- Formik
- react-hotkeys
- Next.js
- Frontity
- React Query
- Redux
1.a) Gatsby is a simple front-end framework that we can use to creating static websites.
1.b)The reason to use this, it gives high performance.
2.a) We can use storybook framework for making UI component seperately and use it the same component in several other projects later as well.
2.b)Storybook is a tool/framework used for UI development which allows you to build isolated and reusable components that can be leveraged to develop entire UIs without much effort.
3.a)With Internationalization, we can provide multiple languages services.
3.b)Ultimately, good internationalization ensures your software, app, or website works across a variety of cultures and target markets. It means that every piece of text should be translatable and that there shouldn't be any code that relies on text being input in a specific language or alphabet.
4.a) Both libraries exist because they wanted to add math formulas to webpages more easily.
4.b) I would use it if I need to present Math formulas on my webpage. Educational projects.
5.a) It's used to create more visual representations of accumulated data. I would use it because data represantation shouldn't be just doesn't need to be boring graphs, this would help me to visualise it better in an asthetic way and I would use it if I wanted to represent some data.
5.b) It could e used on data analysis projects and data visualisation.
6.a) It exists because they wanted to prevent repetitive code that appears when we want to control the forms in React.
6.b) I would use it if I'm gonna deal a lot with inputs in my website.
7.a)Sometimes called shortcut keys provides several components that are useful for implementing keyboard shortcuts into react project. A hot key is a key or a combination of keys on a computer keyboard that, when pressed at one time, performs a task (such as starting an application) it is more quickly than by using a mouse or other input device.
For example:
pressing the F1 key in any application running Windows usually brings up a help menu
The "Alt + F4" combination results in closing the current application
7.b) All projects that has some key shortucuts.
8.a) React framework for developing single page Javascript applications such as Static websites server-side rendering for React-based web applications.
8.b) For server-side projects.
9.a) Open-source framework that enables us to build and headles frontend WordPress site based on React after using WordPress site serves the data via the REST API, also Frontity will then consumes this data and render it in the browser as a SPA (Single Page Application)
9.b) For single page applications.
10.a) If we are fetching so many things we can use React Query. It is often described as the missing data-fetching library for React, but in more technical terms, it makes fetching, caching, synchronizing and updating server state in your React applications a breeze.
react-query: This will be used to make fetch and post requests to the API
10.b) React Query is a great hook library for managing data requests that completely removes the need to put your remote data inside the global state. You just need to tell the library where you need to fetch your data, and it will handle caching, background updates, and stale data without any extra code or configuration.
11.a) It exists because people wanted to be able to see their states in one place and understand what's exactly changing in the app. It's managing the states and putting them in a global store to allow sibling components pass data to each other via state. It removes the constrains of data flow between components and lets you access all the states from one big global place that has all the states inside.
11.b) It's used to create apps that is consistent between client, server, and native. Also it is easy to test and pass data between components.