Bad ReactJs Practices You Should Avoid

AJ Develos
.
August 21, 2023
Code

Several articles and blogs contain useful information on doing things correctly.

Clean code style, best practices, design patterns, and proper usage of state are all things to consider.

coding2

Due to this, I've decided to reverse things and see what I can avoid doing.

In this article, we will expose the bad practices and make them interesting to read.

Overusing State

UseState or useReducer can be useful for creating ReactJS states, but don't place everything within them.

The majority of new developers have difficulty with this concept.

They don't know when to place something in a state and when they shouldn't.

The state could be used for storing data that should have been derived from the state.

Consider a webshop in which a full shopping basket represents a state.

Having the total price set in the state as well would be a bad practice since you can already calculate it from the state.

In general, it is advised to store as little data in your state as possible.

Simple computational tasks or variables exist for exactly that reason.

Consider whether the data you need can be obtained from other variables or states before adding data to the state.

Using Redux When It Is Not Necessary

This is an eternal debate among React developers, so I had to include it here.

It is not uncommon to hear developers wondering "Should I use Redux or Context?", "Just use Context instead of Redux" or "Is Context a good alternative to Redux?"

The functionality of Redux can be partially achieved by many tools and mechanisms.

In summary, we can understand the points made above.

Let's resolve this issue once and for all.

Context & Redux

Context is often thought of as a state management system by developers.

This isn't true! Context is a mechanism for injecting dependencies.

There's no limit to what you can put inside.

If implemented in that way, it can be used as a state management system.

To manage state within it, you use either the useState or useReducer hooks.

This way, you control where the state is stored, how it is updated, and where it is used.

Using Context is the only way to fix this issue without going through many layers of components. Try it if you only need to deal with this issue.

Caching & Redux

The majority of software applications need some type of cache to remember server data.

If you stick with the REST APIs, there are a number of libraries that will take care of your caching.

GraphQL and Apollo Client make caching really easy with React Query and Vercel's Swr.

If we use a more modern approach, we can use React Query or SWR Vercel.

At that point, you do not need Redux in your app if caching is the only functionality you need.

What’s the purpose of using Redux?

The Redux application is a generic state management tool.

It can be used in many different ways.

Caching state, UI state, complex data management on the client, middlewares, etc. are some of the more noticeable ones.

Usually, you will only need to use partial Redux features depending on what the application is trying to accomplish.

Component declaration within another component

There are a number of reasons why this is bad.

  1. Performance. In every render of a parent's component, a new declaration function is created for the inner component. During each render cycle, the inner component's lifecycle methods will be called. This will cause performance issues as well as losing the previous state.

  1. There is a lot of coupling in the code. A component's scope becomes dependent upon that of its parent.

  1. It is almost impossible to reuse inner components. The inner components cannot be exported, they can only be passed as props further down the scope, which is not optimal.

The components should be kept in their respective files to avoid this issue.

Props are used sometimes in Initial State

For generic components such as counter components, it is perfectly fine to use the initial state from the official React docs.

The goal of this process is to initialize the state of a component with a non-reactive prop by setting props to state.

Outside of the example, an initial react state should not be set to a reactive property value.

Why?

Because that state cannot be changed until a setState function is called.

Properties from the upper level will be received by the component, but the state will remain unchanged.

Components can no longer rely on the concept of a single source of truth.

Such behavior is risky and should not be encouraged.

Index as a Key

React allows you to render multiple items using the array.map method.

The element or component key must be unique so that React can properly track it.

The index can sometimes be a duplicate key, so you should avoid using it as a key.

Let's say you have an array of items that will be rendered via .map and the index keys are going to be used.

Imagine the array being expanded or contracting in the middle.

Key will become the same, and React will be the same identical element/component as before.

This might result in undesirable effects and should be avoided.

Frequent use of the spread operator

When used correctly, spread operators are great for reducing code and managing it in a more clear manner.

In cases where reusable components or new data objects can be created that reuse data, spread operators are very useful.

They are even useful when passing arguments into functions.

It is common for developers to make the mistake of using a spread operator on props, resulting in the wrong or undesired props being set on a component.

This can cause errors on the console.

useEffect, useMemo & useCallback dependencies

Dependencies are included in the stated React hooks.

Dependencies are merely an array of items that trigger updates when they are changed.

It can be difficult to manage dependencies if you haven't tried it before.

A dependency array should contain items relating to hooks and not be overcrowded with them.

The static analysis rule in ESLint can be used to help us rely on dependencies in hooks.

Use useEffect once when mounting the component, so it is only possible to leave the dependencies array empty.

Doing Premature Optimizations

Optimizations are usually a good thing, but they should not be applied to every single piece of information.

Use hooks such as useMemo, useCallback, and PureComponents to reap the benefits of memoization.

If developers are not very focused, it can lead to the breakage of memos one by one.

A TypeScript Type is Declared Incorrectly

TypeScript has become a necessity for many developers in JS and most people know about its keywords such as any, never, and unknown.

Unknown variables may have any value assigned to them since any possible value can be assigned to them.  

This is the type-safe counterpart of Ever, as it represents an empty set, meaning no value can be assigned to such a variable.

These keywords should be avoided most of the time. This cannot be overstated.

Many developers are frustrated with TypeScript and then just add one of these keywords to get it off their backs.

This is bad practice.

Using these keywords has a place, but they must be used scarcely:

  • You can use unknown to indicate there will be a value of any type.

  • Any unsafe escape hatch will do if you really need it.

  • Place never in a position where a value won't or shouldn't exist.

Final Thought

We saw a number of bad patterns today and we also learned how to avoid them and use proper patterns.

It will make your life as a programmer much easier and prevent many bugs and potential refactorings if you learn how to avoid these bad patterns.

Author
AJ Develos
Chief Technology Officer
Work with world leading tech companies from the Philippines
Submit CV

One of our recruitment officers will get in touch with you today!

If you’re interested to know more about our employee benefits and perks, you can download the booklet.

Download now

Head of Marketing

Cloud Employee is building a ‘Future of Work’ AI driven talent tech platform in the remote software engineer staffing space. 

In this strategic and hands-on creative role, you'll have the opportunity to shape the narrative of remote work and impact the tech industry at a global scale. 

With team members across the US, LATAM, Europe and Asia - we’re on a mission to bridge the talent gap with our matching platform and employee experience programs.

We need your storytelling strategy skills to ‘share the journey’ and the human stories behind our business

POST DATE
May 1, 2024
WORK LOCATION
Remotely
JOB TYPE
Full Time
Apply

Strategy & Operations Manager

Cloud Employee, is a UK-owned Philippines business established 8 years ago. We connect high-performing software engineer talent in the Philippines with some of the world’s leading and most innovative tech companies. Developers join to work from the Philippines as part of international engineer teams and grow their CV and skill-set.

We pride ourselves on being supportive and cutting-edge work that continuously invests in staff development, engagement and well-being. We provide security, and career paths, along with individual training programs and mentoring.

POST DATE
WORK LOCATION
Remotely
JOB TYPE
Full Time
Apply

Software QA Test Engineer

Cloud Employee, is a UK owned Philippines business established 8 years ago. We connect high-performing software engineer talent in the Philippines with some of the world’s leading and most innovative tech companies. Developers join to work from the Philippines as part of international engineer teams and grow their CV and skill-set.

We pride ourselves on being a supportive and cutting edge workplace continuously investing in staff development, engagement and well-being. We provide security, career paths, along with individual training programs and mentoring.

POST DATE
WORK LOCATION
Remotely
JOB TYPE
Full Time
Apply

Senior/Team Lead Full-Stack PHP Developer

Cloud Employee is a fast-growing UK-managed offshore recruitment and staffing company in the Philippines. We tackle the growing global IT skills shortage by connecting tech companies based in Europe, the US, and Australia to our pool of expert software developers in the country.

We are now seeking a passionate Senior/Team Lead Full-Stack PHP Developer to join our team of skilled talents. This is an excellent opportunity to join a fun and dynamic work environment and to significantly advance your career.

POST DATE
WORK LOCATION
Remotely
JOB TYPE
Full Time
Apply

Senior/Lead Backend Developer - Brazil

Cloud Employee is a UK-owned business established 8 years ago. We connect high-performing software engineer talent worldwide with some of the world’s leading and most innovative tech companies. Developers join to work from the Philippines and Brazil as part of international engineer teams and grow their CV and skill-set.

We pride ourselves on being a supportive and cutting edge workplace continuously investing in staff development, engagement and well-being. We provide security, career paths, along with individual training programs and mentoring.

POST DATE
WORK LOCATION
Remotely
JOB TYPE
Full Time
Apply

Senior/Lead Backend Developer

Cloud Employee, is a UK-owned Philippines business established 8 years ago. We connect high-performing software engineer talent in the Philippines with some of the world’s leading and most innovative tech companies. Developers join to work from the Philippines as part of international engineer teams and grow their CV and skill-set.

We pride ourselves on being supportive and cutting-edge work that continuously invests in staff development, engagement and well-being. We provide security, and career paths, along with individual training programs and mentoring.

POST DATE
WORK LOCATION
Remotely
JOB TYPE
Full Time
Apply

Senior UI Developer with Umbraco

Cloud Employee, is a UK-owned Philippines business established 8 years ago. We connect high-performing software engineer talent in the Philippines with some of the world’s leading and most innovative tech companies. Developers join to work from the Philippines as part of international engineer teams and grow their CV and skill-set.

We pride ourselves on being supportive and cutting-edge work that continuously invests in staff development, engagement and well-being. We provide security, and career paths, along with individual training programs and mentoring.

POST DATE
WORK LOCATION
Remotely
JOB TYPE
Full Time
Apply

Senior Software Engineer (VB6)

Cloud Employee is a UK-owned Philippines business established 8 years ago. We connect high-performing software engineer talent in the Philippines with some of the world’s leading and most innovative tech companies. Developers join to work from the Philippines as part of international engineering teams and grow their CV and skill-set.

We pride ourselves on being supportive and cutting-edge work that continuously invests in staff development, engagement, and well-being. We provide security, career paths, individual training programs, and mentoring.

POST DATE
WORK LOCATION
Remotely
JOB TYPE
Full Time
Apply

Senior Python Developer

Cloud Employee, is a UK owned Philippines business established 8 years ago. We connect high-performing software engineer talent in the Philippines with some of the world’s leading and most innovative tech companies. Developers join to work from the Philippines as part of international engineer teams and grow their CV and skill-set.

We pride ourselves on being a supportive and cutting edge workplace continuously investing in staff development, engagement and well-being. We provide security, career paths, along with individual training programs and mentoring.

POST DATE
WORK LOCATION
Remotely
JOB TYPE
Full Time
Apply

Senior /Lead Fullstack Developer - Brazil

Cloud Employee is a UK-owned business established 8 years ago. We connect high-performing software engineer talent worldwide with some of the world’s leading and most innovative tech companies. Developers join to work from the Philippines and Brazil as part of international engineer teams and grow their CV and skill-set.

We pride ourselves on being a supportive and cutting edge workplace continuously investing in staff development, engagement and well-being. We provide security, career paths, along with individual training programs and mentoring.

POST DATE
WORK LOCATION
Remotely
JOB TYPE
Full Time
Apply

Senior Integrations Developer

Cloud Employee, is a UK-owned Philippines business established 8 years ago. We connect high-performing software engineer talent in the Philippines with some of the world’s leading and most innovative tech companies. Developers join to work from the Philippines as part of international engineer teams and grow their CV and skill-set.

We pride ourselves on being supportive and cutting-edge work that continuously invests in staff development, engagement and well-being. We provide security, and career paths, along with individual training programs and mentoring.

POST DATE
WORK LOCATION
Remotely
JOB TYPE
Full Time
Apply

Senior Integration Backend Developer

Cloud Employee, is a UK-owned Philippines business established 8 years ago. We connect high-performing software engineer talent in the Philippines with some of the world’s leading and most innovative tech companies. Developers join to work from the Philippines as part of international engineer teams and grow their CV and skill-set.

We pride ourselves on being supportive and cutting-edge work that continuously invests in staff development, engagement and well-being. We provide security, and career paths, along with individual training programs and mentoring.

POST DATE
WORK LOCATION
Remotely
JOB TYPE
Full Time
Apply

Senior Fullstack Python Developer with React

Cloud Employee, is a UK-owned Philippines business established 8 years ago. We connect high-performing software engineer talent in the Philippines with some of the world’s leading and most innovative tech companies. Developers join to work from the Philippines as part of international engineer teams and grow their CV and skill-set.

We pride ourselves on being supportive and cutting-edge work that continuously invests in staff development, engagement and well-being. We provide security, and career paths, along with individual training programs and mentoring.

POST DATE
WORK LOCATION
Remotely
JOB TYPE
Full Time
Apply

Senior Fullstack PHP Laravel Developer

Cloud Employee, is a UK-owned Philippines business established 8 years ago. We connect high-performing software engineer talent in the Philippines with some of the world’s leading and most innovative tech companies. Developers join to work from the Philippines as part of international engineer teams and grow their CV and skill-set.

We pride ourselves on being supportive and cutting-edge work that continuously invests in staff development, engagement and well-being. We provide security, and career paths, along with individual training programs and mentoring.

POST DATE
WORK LOCATION
Remotely
JOB TYPE
Full Time
Apply

Senior Fullstack Engineer

Cloud Employee, is a UK-owned Philippines business established 8 years ago. We connect high-performing software engineer talent in the Philippines with some of the world’s leading and most innovative tech companies. Developers join to work from the Philippines as part of international engineer teams and grow their CV and skill-set.

We pride ourselves on being supportive and cutting-edge work that continuously invests in staff development, engagement and well-being. We provide security, and career paths, along with individual training programs and mentoring.

POST DATE
WORK LOCATION
Remotely
JOB TYPE
Full Time
Apply

Senior Frontend Developer (React)

Cloud Employee, is a UK-owned Philippines business established 8 years ago. We connect high-performing software engineer talent in the Philippines with some of the world’s leading and most innovative tech companies. Developers join to work from the Philippines as part of international engineer teams and grow their CV and skill-set.

We pride ourselves on being supportive and cutting-edge work that continuously invests in staff development, engagement and well-being. We provide security, and career paths, along with individual training programs and mentoring.

POST DATE
WORK LOCATION
Remotely
JOB TYPE
Full Time
Apply

Senior NET Developer

Cloud Employee, is a UK-owned Philippines business established 8 years ago. We connect high-performing software engineer talent in the Philippines with some of the world’s leading and most innovative tech companies. Developers join to work from the Philippines as part of international engineer teams and grow their CV and skill-set.

We pride ourselves on being supportive and cutting-edge work that continuously invests in staff development, engagement and well-being. We provide security, and career paths, along with individual training programs and mentoring.

POST DATE
WORK LOCATION
Remotely
JOB TYPE
Full Time
Apply

Senior DevOps Engineer

Cloud Employee, is a UK owned Philippines business established 8 years ago. We connect high-performing software engineer talent in the Philippines with some of the world’s leading and most innovative tech companies. Developers join to work from the Philippines as part of international engineer teams and grow their CV and skill-set.

We pride ourselves on being a supportive and cutting edge workplace continuously investing in staff development, engagement and well-being. We provide security, career paths, along with individual training programs and mentoring.

Our Client

A leading UK-company that specializes in providing foreign currencies solutions

POST DATE
WORK LOCATION
Remotely
JOB TYPE
Full Time
Apply

Robotics Software Engineer

Cloud Employee, is a UK-owned Philippines business established 8 years ago. We connect high-performing software engineer talent in the Philippines with some of the world’s leading and most innovative tech companies. Developers join to work from the Philippines as part of international engineer teams and grow their CV and skill-set.

We pride ourselves on being supportive and cutting-edge work that continuously invests in staff development, engagement and well-being. We provide security, and career paths, along with individual training programs and mentoring.

A completely integrated innovation studio within the corporate framework, with a primary emphasis on making the future of the food industry accessible to all. Their core objective is to discover, create, and expand tailored automation remedies, utilizing a team of proficient individuals covering domains like engineering, robotics, and artificial intelligence. Our central mission revolves around constructing automation technology solutions that empower individuals to achieve greater feats.

Position Summary

In your role as a Robotics Software Engineer, your expertise in Robotic Software Engineering will be the key to your success. Collaborating with our skilled team, you'll play a pivotal role in advancing our cutting-edge product development accelerator. Your responsibilities will involve crafting, programming, and evaluating top-notch software essential for ensuring the dependable and secure operations of commercial robots.

POST DATE
WORK LOCATION
Remotely
JOB TYPE
Full Time
Apply

Senior Python Developer

Cloud Employee, is a UK-owned Philippines business established 8 years ago. We connect high-performing software engineer talent in the Philippines with some of the world’s leading and most innovative tech companies. Developers join to work from the Philippines as part of international engineer teams and grow their CV and skill-set.

We pride ourselves on being supportive and cutting-edge work that continuously invests in staff development, engagement and well-being. We provide security, and career paths, along with individual training programs and mentoring.

POST DATE
WORK LOCATION
Remotely
JOB TYPE
Full Time
Apply

Python Developer (Senior Level)

Cloud Employee, is a UK-owned Philippines business established 8 years ago. We connect high-performing software engineer talent in the Philippines with some of the world’s leading and most innovative tech companies. Developers join to work from the Philippines as part of international engineer teams and grow their CV and skill-set.

We pride ourselves on being supportive and cutting-edge work that continuously invests in staff development, engagement and well-being. We provide security, and career paths, along with individual training programs and mentoring.

POST DATE
WORK LOCATION
JOB TYPE
Apply

Python Developer

Cloud Employee, is a UK-owned Philippines business established 8 years ago. We connect high-performing software engineer talent in the Philippines with some of the world’s leading and most innovative tech companies. Developers join to work from the Philippines as part of international engineer teams and grow their CV and skill-set.

We pride ourselves on being supportive and cutting-edge work that continuously invests in staff development, engagement and well-being. We provide security, and career paths, along with individual training programs and mentoring.

POST DATE
WORK LOCATION
Remotely
JOB TYPE
Full Time
Apply

Perl Developer

Cloud Employee, is a UK-owned Philippines business established 8 years ago. We connect high-performing software engineer talent in the Philippines with some of the world’s leading and most innovative tech companies. Developers join to work from the Philippines as part of international engineer teams and grow their CV and skill-set.

We pride ourselves on being supportive and cutting-edge work that continuously invests in staff development, engagement and well-being. We provide security, and career paths, along with individual training programs and mentoring.

POST DATE
WORK LOCATION
Remotely
JOB TYPE
Full Time
Apply

Mid-Senior Mechanical Engineer

Cloud Employee, is a UK-owned Philippines business established 8 years ago. We connect high-performing software engineer talent in the Philippines with some of the world’s leading and most innovative tech companies. Developers join to work from the Philippines as part of international engineer teams and grow their CV and skill-set.

We pride ourselves on being supportive and cutting-edge work that continuously invests in staff development, engagement and well-being. We provide security, and career paths, along with individual training programs and mentoring.

A completely integrated innovation studio within the corporate framework, with a primary emphasis on making the future of the food industry accessible to all. Their core objective is to discover, create, and expand tailored automation remedies, utilizing a team of proficient individuals covering domains like engineering, robotics, and artificial intelligence. Our central mission revolves around constructing automation technology solutions that empower individuals to achieve greater feats.

Position Summary

The position of Mechanical Engineer corresponds to a mid-level role. An ideal candidate for this position possesses robust practical expertise in various technical systems. The responsibilities encompass a combination of individual input within projects and actively leading teams towards achieving a remarkable standard of technical proficiency.

POST DATE
WORK LOCATION
Remotely
JOB TYPE
Full Time
Apply

Mid-Senior Industrial Design Engineer

Cloud Employee, is a UK-owned Philippines business established 8 years ago. We connect high-performing software engineer talent in the Philippines with some of the world’s leading and most innovative tech companies. Developers join to work from the Philippines as part of international engineer teams and grow their CV and skill-set.

We pride ourselves on being supportive and cutting-edge work that continuously invests in staff development, engagement and well-being. We provide security, and career paths, along with individual training programs and mentoring.

A completely integrated innovation studio within the corporate framework, with a primary emphasis on making the future of the food industry accessible to all. Their core objective is to discover, create, and expand tailored automation remedies, utilizing a team of proficient individuals covering domains like engineering, robotics, and artificial intelligence. Our central mission revolves around constructing automation technology solutions that empower individuals to achieve greater feats.

Position Summary

In the role of an Industrial Design Engineer with a focus on cobotics, you will assume a crucial position in envisioning, crafting, and honing both the tangible and operational facets of our collaborative robotic solutions. Your collaboration will extend to cross-functional groups, including mechanical engineers, software developers, and UX designers, in the pursuit of devising cobotic systems centered around users. These systems will redefine effectiveness and safety within industrial settings.

POST DATE
WORK LOCATION
JOB TYPE
Apply

Backend Python Developer

Cloud Employee, is a UK owned Philippines business established 8 years ago. We connect high-performing software engineer talent in the Philippines with some of the world’s leading and most innovative tech companies. Developers join to work from the Philippines as part of international engineer teams and grow their CV and skill-set.

We pride ourselves on being a supportive and cutting edge workplace continuously investing in staff development, engagement and well-being. We provide security, career paths, along with individual training programs and mentoring.

A top rated and state of the art cloud based video interviewing solutions company based in the UK catering to over 5000 prominent companies around the world such as Samsung, Uber, Boohoo, Coinbase, 7-Eleven and many more.

POST DATE
WORK LOCATION
Remotely
JOB TYPE
Full Time
Apply

CNC Machinist

Cloud Employee, is a UK-owned Philippines business established 8 years ago. We connect high-performing software engineer talent in the Philippines with some of the world’s leading and most innovative tech companies. Developers join to work from the Philippines as part of international engineer teams and grow their CV and skill-set.

We pride ourselves on being supportive and cutting-edge work that continuously invests in staff development, engagement and well-being. We provide security, and career paths, along with individual training programs and mentoring.

POST DATE
WORK LOCATION
Remotely
JOB TYPE
Full Time
Apply

CRM Data Specialist (MS Dynamics 365)

Cloud Employee, is a UK-owned Philippines business established 8 years ago. We connect high-performing software engineer talent in the Philippines with some of the world’s leading and most innovative tech companies. Developers join to work from the Philippines as part of international engineer teams and grow their CV and skill-set.

We pride ourselves on being supportive and cutting-edge work that continuously invests in staff development, engagement and well-being. We provide security, and career paths, along with individual training programs and mentoring.

POST DATE
WORK LOCATION
Remotely
JOB TYPE
Full Time
Apply

Electrical Engineer

Cloud Employee, is a UK-owned Philippines business established 8 years ago. We connect high-performing software engineer talent in the Philippines with some of the world’s leading and most innovative tech companies. Developers join to work from the Philippines as part of international engineer teams and grow their CV and skill-set.

We pride ourselves on being supportive and cutting-edge work that continuously invests in staff development, engagement and well-being. We provide security, and career paths, along with individual training programs and mentoring.

A completely integrated innovation studio within the corporate framework, with a primary emphasis on making the future of the food industry accessible to all. Their core objective is to discover, create, and expand tailored automation remedies, utilizing a team of proficient individuals covering domains like engineering, robotics, and artificial intelligence. Our central mission revolves around constructing automation technology solutions that empower individuals to achieve greater feats.

Position Overview

In the role of an Electrical Engineer, your expertise and proficiency in designing electrical-mechanical systems will be a key asset, enabling you to stand out. Collaborating with our skilled team, you will play a vital role in expediting product development processes.

POST DATE
WORK LOCATION
Remotely
JOB TYPE
Full Time
Apply

Front-End Developer

Cloud Employee, is a UK-owned Philippines business established 8 years ago. We connect high-performing software engineer talent in the Philippines with some of the world’s leading and most innovative tech companies. Developers join to work from the Philippines as part of international engineer teams and grow their CV and skill-set.

We pride ourselves on being supportive and cutting-edge work that continuously invests in staff development, engagement and well-being. We provide security, and career paths, along with individual training programs and mentoring.

POST DATE
WORK LOCATION
Remotely
JOB TYPE
Full Time
Apply

Front End React Developer

Cloud Employee is a fast-growing UK-managed offshore recruitment and staffing company in the Philippines. We tackle the growing global IT skills shortage by connecting tech companies based in Europe, the US, and Australia to our pool of expert software developers in the country.

We are now seeking a passionate Front End React Developer to join our team of skilled talents. This is an excellent opportunity to join a fun and dynamic work environment and to significantly advance your career.

POST DATE
WORK LOCATION
Remotely
JOB TYPE
Full Time
Apply

Frontend Developer (NextJS and React)

Cloud Employee, is a UK-owned Philippines business established 8 years ago. We connect high-performing software engineer talent in the Philippines with some of the world’s leading and most innovative tech companies. Developers join to work from the Philippines as part of international engineer teams and grow their CV and skill-set.

We pride ourselves on being supportive and cutting-edge work that continuously invests in staff development, engagement and well-being. We provide security, and career paths, along with individual training programs and mentoring.

POST DATE
WORK LOCATION
Remotely
JOB TYPE
Full Time
Apply

Frontend Developer (Senior)

Cloud Employee, is a UK-owned Philippines business established 8 years ago. We connect high-performing software engineer talent in the Philippines with some of the world’s leading and most innovative tech companies. Developers join to work from the Philippines as part of international engineer teams and grow their CV and skill-set.

We pride ourselves on being supportive and cutting-edge work that continuously invests in staff development, engagement and well-being. We provide security, and career paths, along with individual training programs and mentoring.

POST DATE
WORK LOCATION
Remotely
JOB TYPE
Seasonal
Apply

Frontend React Developer

Cloud Employee, is a UK-owned Philippines business established 8 years ago. We connect high-performing software engineer talent in the Philippines with some of the world’s leading and most innovative tech companies. Developers join to work from the Philippines as part of international engineer teams and grow their CV and skill-set.

We pride ourselves on being supportive and cutting-edge work that continuously invests in staff development, engagement and well-being. We provide security, and career paths, along with individual training programs and mentoring.

POST DATE
WORK LOCATION
JOB TYPE
Apply

Full-Stack Developer

Cloud Employee is a fast-growing UK-managed offshore recruitment and staffing company in the Philippines. We tackle the growing global IT skills shortage by connecting tech companies based in Europe, the US, and Australia to our pool of expert software developers in the country.

We are now seeking a passionate Full-Stack Developer to join our team of skilled talents. This is an excellent opportunity to join a fun and dynamic work environment and to significantly advance your career.

POST DATE
WORK LOCATION
Remotely
JOB TYPE
Full Time
Apply

Full-Stack Laravel/Vue Developer (Jr to Mid)

Cloud Employee, is a UK-owned Philippines business established 8 years ago. We connect high-performing software engineer talent in the Philippines with some of the world’s leading and most innovative tech companies. Developers join to work from the Philippines as part of international engineer teams and grow their CV and skill-set.

We pride ourselves on being supportive and cutting-edge work that continuously invests in staff development, engagement and well-being. We provide security, and career paths, along with individual training programs and mentoring.

POST DATE
WORK LOCATION
Remotely
JOB TYPE
Full Time
Apply

Full Stack .Net Developer

Cloud Employee, is a UK-owned Philippines business established 8 years ago. We connect high-performing software engineer talent in the Philippines with some of the world’s leading and most innovative tech companies. Developers join to work from the Philippines as part of international engineering teams and grow their CV and skill-set.We pride ourselves on being a supportive and cutting-edge workplace that continuously invests in staff development, engagement, and well-being. We provide security, and career paths, along with individual training programs and mentoring.

POST DATE
WORK LOCATION
Remotely
JOB TYPE
Full Time
Apply

Full-Stack Node/VueJS Developer (Mid - Senior)

Cloud Employee, is a UK-owned Philippines business established 8 years ago. We connect high-performing software engineer talent in the Philippines with some of the world’s leading and most innovative tech companies. Developers join to work from the Philippines as part of international engineer teams and grow their CV and skill-set.

We pride ourselves on being supportive and cutting-edge work that continuously invests in staff development, engagement and well-being. We provide security, and career paths, along with individual training programs and mentoring

POST DATE
WORK LOCATION
Remotely
JOB TYPE
Full Time
Apply

Full-Stack PHP Developer (Mid to Senior)

Cloud Employee is a fast-growing UK-managed offshore recruitment and staffing company in the Philippines. We tackle the growing global IT skills shortage by connecting tech companies based in Europe, the US, and Australia to our pool of expert software developers in the country.

We are now seeking passionate mid to senior-level Fullstack PHP Developer to join our team of skilled talents. This is an excellent opportunity to join a fun and dynamic work environment and to significantly advance your career.

POST DATE
WORK LOCATION
Remotely
JOB TYPE
Full Time
Apply

Full-Stack PHP Developer Tech Lead

Cloud Employee is a fast-growing UK-managed offshore recruitment and staffing company in the Philippines. We tackle the growing global IT skills shortage by connecting tech companies based in Europe, the US, and Australia to our pool of expert software developers in the country.

We are now seeking passionate Lead Full-Stack PHP Developer to join our team of skilled talents. This is an excellent opportunity to join a fun and dynamic work environment and to significantly advance your career.

POST DATE
WORK LOCATION
Remotely
JOB TYPE
Full Time
Apply

Full stack RoR/VueJS Developer

Cloud Employee, is a UK-owned Philippines business established 8 years ago. We connect high-performing software engineer talent in the Philippines with some of the world’s leading and most innovative tech companies. Developers join to work from the Philippines as part of international engineer teams and grow their CV and skill-set.

We pride ourselves on being supportive and cutting-edge work that continuously invests in staff development, engagement and well-being. We provide security, and career paths, along with individual training programs and mentoring.

POST DATE
WORK LOCATION
Remotely
JOB TYPE
Full Time
Apply

Fullstack Developer

Cloud Employee, is a UK-owned Philippines business established 8 years ago. We connect high-performing software engineer talent in the Philippines with some of the world’s leading and most innovative tech companies. Developers join to work from the Philippines as part of international engineer teams and grow their CV and skill-set.

We pride ourselves on being supportive and cutting-edge work that continuously invests in staff development, engagement and well-being. We provide security, and career paths, along with individual training programs and mentoring.

POST DATE
WORK LOCATION
Remotely
JOB TYPE
Full Time
Apply

Fullstack .NET Developer

Cloud Employee, is a UK-owned Philippines business established 8 years ago. We connect high-performing software engineer talent in the Philippines with some of the world’s leading and most innovative tech companies. Developers join to work from the Philippines as part of international engineer teams and grow their CV and skill-set.

We pride ourselves on being supportive and cutting-edge work that continuously invests in staff development, engagement and well-being. We provide security, and career paths, along with individual training programs and mentoring.

POST DATE
WORK LOCATION
Remotely
JOB TYPE
Full Time
Apply

Lead/Senior Frontend Developer (UI/UX) - Brazil

Cloud Employee is a UK-owned business established eight years ago. We connect high-performing software engineer talent worldwide with some of the world’s leading and most innovative tech companies. Developers join to work from the Philippines and Brazil as part of international engineering teams and grow their CV and skill-set.

We pride ourselves on being a supportive and cutting edge workplace that continuously invests in staff development, engagement, and well-being. We provide security, career paths, individual training programs, and mentoring.

POST DATE
WORK LOCATION
Remotely
JOB TYPE
Full Time
Apply

Marketing Specialists

Cloud Employee, is a UK-owned Philippines business established 8 years ago. We connect high-performing software engineer talent in the Philippines with some of the world’s leading and most innovative tech companies. Developers join to work from the Philippines as part of international engineer teams and grow their CV and skill-set.

We pride ourselves on being supportive and cutting-edge work that continuously invests in staff development, engagement and well-being. We provide security, and career paths, along with individual training programs and mentoring.

POST DATE
WORK LOCATION
Remotely
JOB TYPE
Full Time
Apply

Backend Developer (Python)

Cloud Employee, is a UK-owned Philippines business established 8 years ago. We connect high-performing software engineer talent in the Philippines with some of the world’s leading and most innovative tech companies. Developers join to work from the Philippines as part of international engineer teams and grow their CV and skill-set.

We pride ourselves on being supportive and cutting-edge work that continuously invests in staff development, engagement and well-being. We provide security, and career paths, along with individual training programs and mentoring.

POST DATE
WORK LOCATION
Remotely
JOB TYPE
Full Time
Apply

Senior Full-Stack PHP Developer

Cloud Employee is a UK-owned Philippines business established 8 years ago. We connect high-performing software engineer talent in the Philippines with some of the world’s leading and most innovative tech companies. Developers join to work from the Philippines as part of international engineering teams and grow their CV and skill-set.

We pride ourselves on being a supportive and cutting-edge workplace that continuously invests in staff development, engagement, and well-being. We provide security, and career paths, along with individual training programs and mentoring.

POST DATE
January 2, 2024
WORK LOCATION
Remotely
JOB TYPE
Full Time
Apply

Bad ReactJs Practices You Should Avoid

February 16, 2024

Several articles and blogs contain useful information on doing things correctly.

Clean code style, best practices, design patterns, and proper usage of state are all things to consider.

coding2

Due to this, I've decided to reverse things and see what I can avoid doing.

In this article, we will expose the bad practices and make them interesting to read.

Overusing State

UseState or useReducer can be useful for creating ReactJS states, but don't place everything within them.

The majority of new developers have difficulty with this concept.

They don't know when to place something in a state and when they shouldn't.

The state could be used for storing data that should have been derived from the state.

Consider a webshop in which a full shopping basket represents a state.

Having the total price set in the state as well would be a bad practice since you can already calculate it from the state.

In general, it is advised to store as little data in your state as possible.

Simple computational tasks or variables exist for exactly that reason.

Consider whether the data you need can be obtained from other variables or states before adding data to the state.

Using Redux When It Is Not Necessary

This is an eternal debate among React developers, so I had to include it here.

It is not uncommon to hear developers wondering "Should I use Redux or Context?", "Just use Context instead of Redux" or "Is Context a good alternative to Redux?"

The functionality of Redux can be partially achieved by many tools and mechanisms.

In summary, we can understand the points made above.

Let's resolve this issue once and for all.

Context & Redux

Context is often thought of as a state management system by developers.

This isn't true! Context is a mechanism for injecting dependencies.

There's no limit to what you can put inside.

If implemented in that way, it can be used as a state management system.

To manage state within it, you use either the useState or useReducer hooks.

This way, you control where the state is stored, how it is updated, and where it is used.

Using Context is the only way to fix this issue without going through many layers of components. Try it if you only need to deal with this issue.

Caching & Redux

The majority of software applications need some type of cache to remember server data.

If you stick with the REST APIs, there are a number of libraries that will take care of your caching.

GraphQL and Apollo Client make caching really easy with React Query and Vercel's Swr.

If we use a more modern approach, we can use React Query or SWR Vercel.

At that point, you do not need Redux in your app if caching is the only functionality you need.

What’s the purpose of using Redux?

The Redux application is a generic state management tool.

It can be used in many different ways.

Caching state, UI state, complex data management on the client, middlewares, etc. are some of the more noticeable ones.

Usually, you will only need to use partial Redux features depending on what the application is trying to accomplish.

Component declaration within another component

There are a number of reasons why this is bad.

  1. Performance. In every render of a parent's component, a new declaration function is created for the inner component. During each render cycle, the inner component's lifecycle methods will be called. This will cause performance issues as well as losing the previous state.

  1. There is a lot of coupling in the code. A component's scope becomes dependent upon that of its parent.

  1. It is almost impossible to reuse inner components. The inner components cannot be exported, they can only be passed as props further down the scope, which is not optimal.

The components should be kept in their respective files to avoid this issue.

Props are used sometimes in Initial State

For generic components such as counter components, it is perfectly fine to use the initial state from the official React docs.

The goal of this process is to initialize the state of a component with a non-reactive prop by setting props to state.

Outside of the example, an initial react state should not be set to a reactive property value.

Why?

Because that state cannot be changed until a setState function is called.

Properties from the upper level will be received by the component, but the state will remain unchanged.

Components can no longer rely on the concept of a single source of truth.

Such behavior is risky and should not be encouraged.

Index as a Key

React allows you to render multiple items using the array.map method.

The element or component key must be unique so that React can properly track it.

The index can sometimes be a duplicate key, so you should avoid using it as a key.

Let's say you have an array of items that will be rendered via .map and the index keys are going to be used.

Imagine the array being expanded or contracting in the middle.

Key will become the same, and React will be the same identical element/component as before.

This might result in undesirable effects and should be avoided.

Frequent use of the spread operator

When used correctly, spread operators are great for reducing code and managing it in a more clear manner.

In cases where reusable components or new data objects can be created that reuse data, spread operators are very useful.

They are even useful when passing arguments into functions.

It is common for developers to make the mistake of using a spread operator on props, resulting in the wrong or undesired props being set on a component.

This can cause errors on the console.

useEffect, useMemo & useCallback dependencies

Dependencies are included in the stated React hooks.

Dependencies are merely an array of items that trigger updates when they are changed.

It can be difficult to manage dependencies if you haven't tried it before.

A dependency array should contain items relating to hooks and not be overcrowded with them.

The static analysis rule in ESLint can be used to help us rely on dependencies in hooks.

Use useEffect once when mounting the component, so it is only possible to leave the dependencies array empty.

Doing Premature Optimizations

Optimizations are usually a good thing, but they should not be applied to every single piece of information.

Use hooks such as useMemo, useCallback, and PureComponents to reap the benefits of memoization.

If developers are not very focused, it can lead to the breakage of memos one by one.

A TypeScript Type is Declared Incorrectly

TypeScript has become a necessity for many developers in JS and most people know about its keywords such as any, never, and unknown.

Unknown variables may have any value assigned to them since any possible value can be assigned to them.  

This is the type-safe counterpart of Ever, as it represents an empty set, meaning no value can be assigned to such a variable.

These keywords should be avoided most of the time. This cannot be overstated.

Many developers are frustrated with TypeScript and then just add one of these keywords to get it off their backs.

This is bad practice.

Using these keywords has a place, but they must be used scarcely:

  • You can use unknown to indicate there will be a value of any type.

  • Any unsafe escape hatch will do if you really need it.

  • Place never in a position where a value won't or shouldn't exist.

Final Thought

We saw a number of bad patterns today and we also learned how to avoid them and use proper patterns.

It will make your life as a programmer much easier and prevent many bugs and potential refactorings if you learn how to avoid these bad patterns.

Webflow
Python
MySQL
Node.js
Angular
Android
React
Php
Javascript
What skillsets are you looking to hire?
Previous
Next
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.