Skip to main content

Increasing Performance Of Angular Apps Through Change Detection And Component Reusing

Whether you are building enterprise applications, progressive web apps or e-commerce apps, there are many methods for enhancing your Angular application’s performance. Some of the best ways for achieving high-performing and more efficient Angular apps is through change detection and component reusing. You may be wondering how change detection works in Angular or how to build reusable components. This article will explain the process, outline key strategies, as well as provide tips and best practices for your process to make it easier to accomplish your goals.

What is Angular Change Detection?

In essence, change detection in Angular is the process of detecting when data changes in any app component. The JavaScript framework automatically updates the Document Object Model  (DOM) and re-renders the view, displaying the changed values/objects to end-users. Here are the most basic ways in which you can trigger change detection:

  • Manually (implementing the so-called OnPush Angular Change Detection strategy).
  • Through common browse events (that occur when a user clicks on a button somewhere on a web page, for instance) or an asynchronous function.

A few quick facts to remember:

  • Your UI is synced, meaning that Angular always keeps the component and the view synchronized.
  • It does so with a change detector for each component that reads the binding on a template.
  • This change detector is created when the application is started.
  • Angular walks the app’s component tree from top to bottom.
Angular Change Detection Strategies Explained

There are two Angular change detections strategies:

  • Default strategy
  • OnPush strategy

The process behind the Angular Default Change Detection strategy unfolds in the following way – for any change in any model property, Angular will run change detection traversing a component tree to update the DOM. You can manipulate the change detection tree using the following built-in methods provided by the ChangeDetectorRef class:

  • markForCheck()
  • detach()
  • detectChanges()
  • checkNoChanges()
  • reattach()

With Angular OnPush, it runs a change detector only when a new reference is passed to the component. If observable is passed to OnPush, then Angular ChangeDetector must be called manually to update the DOM. 

Here is an Angular change detection example with OnPush.

We recommend using the OnPush Angular Change Detection strategy if you aim to optimize the performance of your Angular application. Angular OnPush strategy will reduce the unnecessary checks in child components which will make the whole application significantly faster. It checks for a change internally and stops all input reference variable updates from running change detection. If a component is not changed, the change detection won’t go through it.

If you seek a more detailed explanation on how change detection in Angular works, read What Is Angular Change Detection & Change Detection Strategies.

The second approach for optimizing your app performance is through Angular component reusability.

Angular Component Reusability

What exactly is Angular component reusability and how does it increase performance? 

The more Angular code you hand write, the greater the likelihood for errors. However, with reusable components you reduce the bugs that can muck up your project. Component reusability in Angular becomes a great way for increasing performance across your entire app, reflecting on several key pillars:

  • Efficiency: Achieved through the reuse of markups so any change in the future is faster and simpler to make across all components at once.
  • Consistency: Whenever you want to modify your components, the change is made everywhere and there is a smaller chance for errors.
  • Testability: Your code becomes easier to unit test.
  • Shared business logic: You can more easily understand what’s happening in the component code.

Types of Reusable Components

There are two types of reusable components: container components and presentation components. Here is the difference between them:

Presentation components Container components
They can be identified as simple components They are known as smart components
They just need to get input data and display it in the UI They are connected to the services and know how to get data
They are coded in an abstract way, without many relations, and can be reused easily They are tied to the business logic and it’s hard for them to be reused or shared

 

Angular Components Reusability Tips and Best Practices 

Here are some quick steps for building reusable components in Angular:

Step 1: Avoid nesting styles when possible.

Step 2: Use variables for common items across the Angular app.

Step 3: Use UserControl to group markup and code into a reusable container, allowing the same interface and functionality to be used in several different places.

Step 4: Create style guidelines to promote code reuse.

Step 5: Don’t make every component reusable – it will result in a non-maintainable, high coupling code.

The post Increasing Performance Of Angular Apps Through Change Detection And Component Reusing appeared first on SD Times.



from SD Times https://ift.tt/tHjrye6

Comments

Popular posts from this blog

Difference between Web Designer and Web Developer Neeraj Mishra The Crazy Programmer

Have you ever wondered about the distinctions between web developers’ and web designers’ duties and obligations? You’re not alone! Many people have trouble distinguishing between these two. Although they collaborate to publish new websites on the internet, web developers and web designers play very different roles. To put these job possibilities into perspective, consider the construction of a house. To create a vision for the house, including the visual components, the space planning and layout, the materials, and the overall appearance and sense of the space, you need an architect. That said, to translate an idea into a building, you need construction professionals to take those architectural drawings and put them into practice. Image Source In a similar vein, web development and design work together to create websites. Let’s examine the major responsibilities and distinctions between web developers and web designers. Let’s get going, shall we? What Does a Web Designer Do?

A guide to data integration tools

CData Software is a leader in data access and connectivity solutions. It specializes in the development of data drivers and data access technologies for real-time access to online or on-premise applications, databases and web APIs. The company is focused on bringing data connectivity capabilities natively into tools organizations already use. It also features ETL/ELT solutions, enterprise connectors, and data visualization. Matillion ’s data transformation software empowers customers to extract data from a wide number of sources, load it into their chosen cloud data warehouse (CDW) and transform that data from its siloed source state, into analytics-ready insights – prepared for advanced analytics, machine learning, and artificial intelligence use cases. Only Matillion is purpose-built for Snowflake, Amazon Redshift, Google BigQuery, and Microsoft Azure, enabling businesses to achieve new levels of simplicity, speed, scale, and savings. Trusted by companies of all sizes to meet

2022: The year of hybrid work

Remote work was once considered a luxury to many, but in 2020, it became a necessity for a large portion of the workforce, as the scary and unknown COVID-19 virus sickened and even took the lives of so many people around the world.  Some workers were able to thrive in a remote setting, while others felt isolated and struggled to keep up a balance between their work and home lives. Last year saw the availability of life-saving vaccines, so companies were able to start having the conversation about what to do next. Should they keep everyone remote? Should they go back to working in the office full time? Or should they do something in between? Enter hybrid work, which offers a mix of the two. A Fall 2021 study conducted by Google revealed that over 75% of survey respondents expect hybrid work to become a standard practice within their organization within the next three years.  Thus, two years after the world abruptly shifted to widespread adoption of remote work, we are declaring 20