This post is to track and record my learning of react and use it after some time.
Making some baby steps to learn react.
Here I will be document something related to it.
Basically I’m going to learn about React components, JSX syntax, Forms.
I have good amount knowledge and experience with angular. Now its time do some real learning and experiment in React. Lets do this.
What is React?
It focuses on providing rendering and event handling functionalities.
Dev Environment Setup
We need npm installed in our machine. And then we can install the create-react-app
Or if we already have nodejs installed. We can directly run following command to install the package.
npx create-react-app hello-world
When we create large complex application using jQuery – it becomes hard to test. To make life easier a lots of frameworks arrived in programming world to help the programmers.
Benefits of Angular
Its a component based framework which gives a clean structure for our application
It has Declarative templates which Includes lots of re-usable code
More testable code – supports to build lots of automated test
Dependency Injection – loads dependent objects (called the dependencies) when it creates an instance of an object.
In this tutorial, we are going to explore the basic concepts of angular first – step by step. And then we can move on to the advanced topics later on.
The plan is to help someone who are really new to angular. Beginners needs some simple step by step tutorial at the early stage. So we will discuss the basic concepts with code at first.
We are going to cover following topics in entire course. And I’m planning to add videos tutorial as well simultaneously. The action plan skeleton is
In this post, we are going to discuss how to setup development environment and create an initial angular app using CLI.
A quick start tool is always helps the developer to save their valuable time and use those time in efficient way on improving the quality of the application.
Angular provides us Angular CLI which is a command line interface tool that can help to create a project, add files, and perform a variety of ongoing development tasks such as testing, bundling, and deployment.
Using this CLI, we can create apps with a working condition which uses best practices suggested by Angular Team.
To create an Angular application using Angular CLI, all we need is to follow the below steps:
1. Install Node js and npm on your machine
Visit Node.js web page and download installer. Once you’ve installed nodejs, the npm will get installed along with it.
2. Verify the compatible version
Angular CLI requires the minimal version of node and npm. But feel free to install the latest edition to explore the latest features.
We can check the version of node and npm using following commands.
3. Install Angular CLI
Run the following command to install Angular CLI globally.
npm install -g @angular/cli
-g flag is used to install the package globally in the npm.
Once we installed CLI globally, we can confirm whether the tool installed successfully by using the following command.
StackBlitz is an online IDE where you can create Angular & React projects that are immediately online & shareable via link… in just one click. It automatically takes care of installing dependencies, compiling, bundling, and hot reloading as you type.
StackBlitz is a tool in the Cloud IDE category of a tech stack.
Just read this if you really want to get deep insight about npm
As a part of learning angular, I would suggest everyone learn and understand the basic concept of npm
Maybe by finding answers for few of questions listed below
What is npm?
What is the role of npm?
How to use it?
Why we are going to use it?
So, what is npm?
npm – node package manager
Let’s split the sentence and understand the meaning present in the abbreviation.
Modules of code grouped up into a component which can be used in various project or application.
Managing the dependencies with the various operation like install, uninstall, update and so on.
Now, we can frame our own definition for npm from above split up an explanation. So using npm, we can manage (install, uninstall, organize) the node.js packages in our project.
npm has CLI terminal and website to search for packages.
What is the role of npm?
npm does N number of roles in various projects. I’m just mentioning the various steps which we are going to use in our upcoming posts in the end user developer point of view
npm is distributed with Node.js- which means that when we download and install Node.js, we automatically get npm installed on our computer.
Using following command in terminal, we can check whether our toolset get installed successfully,
// to check node.js version
// to check npm version
What is this packages.json? this is one of the important things we should get familiar if we are going for use npm in our projects.
packages.json file is like the registry of packages in our project.
it lists the packages that our project depends on.
allows us to specify the versions of a package that our project can use using semantic versioning rules.
How to create packages.json file?
Open terminal with your target folder location.
Type npm init and Enter, now you’ll be caught up with few questions. After you have answered most of the question, your file will get created.
name and version fields are mandatory fields.
If you are afraid of questions, we have another quick option.
Enter command npm init –yes
Using –yes argument option, the npm will create packages.json file with default values.
Install a package
npm install (in the package directory, no arguments) – Install the dependencies in the local node_modules folder.
In global mode (ie, with -g or --global appended to the command), it installs the current package context (ie, the current working directory) as a global package.
You can find detailed details of npm install options in this link
A package can be downloaded with the command:
npm install <package_name>
The --save and --save-dev install flags
The easier (and more awesome) way to add dependencies to your package.json is to do from the command line, flagging the npm install command with either --save or --save-dev, depending on how you’d like to use that dependency.
To add an entry to your package.json‘s dependencies:
npm install <package_name> --save
To add an entry to your package.json‘s devDependencies:
npm install <package_name> --save-dev
That’s it. Few lines have been copied from official documentation. :p
Let’s conclude, using npm we can manage number of packages in our projects easily.
xi18n (i18n-extract) – Extracts i18n messages from source code.
Creating new angular project
ng new timer-project
timer-project is name of project we chose.
The CLI asks us choose our required options based on our needs. Like routing and stylesheet type.
After installing package, we are good to go with debugging of the newly generated application. We can discuss about the project structure in our upcoming post.
You can checkout some of our other posts related to angular CLI
Serving the project
Angular CLI provides a complete tool-chain for developing front-end apps on your local machine. As such, you don’t need to install a local server to serve your project — you can simply, use the ng serve command from your terminal to serve your project locally.
Provides version information for all packages installed into node_modules by the npm client. See npm documentation for details. If you use the yarn client, this file will be yarn.lock instead.
Source files for the root-level application project.
Provides npm packages to the entire workspace. Workspace-wide node_modules dependencies are visible to all projects.
Default TypeScript configuration for projects in the workspace.
Default TSLint configuration for projects in the workspace.
Application source files
Files at the top level of src/ support testing and running your application. Subfolders contain the application source and application-specific configuration.
APP SUPPORT FILES
Contains the component files in which your application logic and data are defined. See details below.
Contains image and other asset files to be copied as-is when you build your application.
Contains build configuration options for particular target environments. By default there is an unnamed standard development environment and a production (“prod”) environment. You can define additional target environment configurations.
An icon to use for this application in the bookmark bar.
The main entry point for your application. Compiles the application with the JIT compiler and bootstraps the application’s root module (AppModule) to run in the browser. You can also use the AOT compiler without changing any code by appending the --aot flag to the CLI build and serve commands.
Provides polyfill scripts for browser support.
Lists CSS files that supply styles for a project. The extension reflects the style preprocessor you have configured for the project.
The main entry point for your unit tests, with some Angular-specific configuration. You don’t typically need to edit this file.
Inside the src/ folder, the app/ folder contains your project’s logic and data. Angular components, templates, and styles go here.
Defines the logic for the app’s root component, named AppComponent. The view associated with this root component becomes the root of the view hierarchy as you add components and services to your application.
Defines the HTML template associated with the root AppComponent.
Defines the base CSS stylesheet for the root AppComponent.
Defines a unit test for the root AppComponent.
Defines the root module, named AppModule, that tells Angular how to assemble the application. Initially declares only the AppComponent. As you add more components to the app, they must be declared here.
Application configuration files
The application-specific configuration files for the root application reside at the workspace root level. For a multi-project workspace, project-specific configuration files are in the project root, under projects/project-name/.
Project-specific TypeScript configuration files inherit from the workspace-wide tsconfig.json, and project-specific TSLint configuration files inherit from the workspace-wide tslint.json.
APPLICATION-SPECIFIC CONFIG FILES
Configures sharing of target browsers and Node.js versions among various front-end tools. See Browserslist on GitHub for more information.