Key points for front-end frame selection
To choose a suitable enterprise-level front-end framework, considering the scale, flexibility, offline support, server-side rendering and maturity of the framework. Practical experience is crucial, and the authors team used Aurelia and React to build authentication pages for evaluation.
The final choice of React is based mainly on its maturity, community support and ease of recruitment. Angular 2 was eliminated for failing to meet most selection criteria. Vue and Aurelia performed well and met the requirements, but hiring experienced developers was the ultimate decisive factor.
In evaluating the core network platform of Singapore’s employee welfare startup CXA Group, we decided to abandon the aging existing architecture and rebuild the front end from scratch. One of the challenges facing the platform is to create a web application that works well in 12 target countries across Asia by the CXA Group.
Considering the strict deadline for project delivery, I led the evaluation of a range of front-end JavaScript frameworks. There are few opportunities for this level of change in large enterprise projects, so we strive to be as thorough as possible in the evaluation process.
This decision is important: As the business grows exponentially, we cannot afford to make any mistakes. We also have to consider that no one on the team has important experience with any framework we are considering.
Narrow the scope
The new front-end framework seems to be released every day, so we did a meta-analysis to reduce the scope of the framework we considered. Including the frameworks we've heard of or recommended to us, we ended up choosing Angular 2 (heard of), Aurelia (heard of), Vue.js (recommended), and React (recommended).
We measure the ranking of each finalist frame based on the list of key requirements. Some requirements are based on what we know what the project needs, while others look forward to what we want to do.
Flexibility
The framework we chose requires a range of configuration options and is relatively easy to customize. This seems to depend heavily on the architectural philosophy: whether you make architectural decisions on your behalf or be completely open to them.
Angular 2 is located at this end, making every choice for you (state server, router, handler). The advantage of this is that it is easy to get started quickly, and the potential cost is that the modules can't work as you need and have nowhere to go.
React, Vue and Aurelia are located on the other end of the scale, providing the ability to swap components as needed. Aurelia and Vue have configurable boilerplate in their initial setup, which has a key advantage over React.
Like Vue, React itself provides only a small part of what it takes to build something. From there, many decisions have to be made, which is certainly daunting. Since React was first released, various boilerplates (including React Boilerplate and Create React App) have been created to simplify the introduction process.
For our test React project, we decided to abandon any specific boilerplate and dig directly into it. We still installed some, even just for reference code. This approach is certainly difficult, but we learned a lot about each component in the React stack and were more confident in the end result.
Vue and Aurelia won the round with their reduced learning curve and modular structure. React earns some flexibility points even if the initial setup is significantly more difficult.
Offline support
With APIs such as Service Workers, it becomes possible for web applications to run without a real-time or stable internet connection. We don’t have much experience in this regard in our team, and we haven’t delved into it except confirming that all the frameworks assessed provide some form of offline support.
Lightweight
The byte size of the code sent to the client has a great impact on browser performance, including both bandwidth and processor time. With the addition of custom code and third-party libraries, the byte size will only get bigger and bigger, so it is crucial to start small. The CXA Group's target market extends to countries where bandwidth is very valuable, so it is crucial to deliver as little code as possible to customers.
Due to the lack of hard data that reflects production configuration, we looked at the size of the core library to at least get a sense of what we will face. The actual production size is larger than what is shown here.
Vue's developers have done their best to narrow down their core library to an impressive 23 KB. React and Aurelia are in the middle (approximately 42 KB and 64 KB, respectively), while the Angular 2 remains a heavyweight with over 143 KB (including RxJS for state management).
In fact, production versions of Vue, Aurelia and React are very close to each other and can be considered. Angular 2 stands out again in the wrong way.
Server-side rendering
The early single page application (SPA) framework followed the model of sending all code to the client. This means that the initial rendering of the page is left to the client and directly leads to slow loading of the initial page. The concept of server-side rendering in SPA puts the burden of initial rendering on the server, allowing all other content to be delayed after that rendering.
Vue and React use plugins to add server-side rendering. Angular 2 is currently in the process of combining its Universal capabilities into the core, although its capabilities do not match what Vue or React provides. Aurelia marks server-side rendering as a feature in development, but even if it has other performance tips, it lacks an implementation timeline.
Maturity
When choosing a framework for enterprise-level websites, broad community support, stability and recruitment capabilities are very important factors. It is difficult to speculate whether any framework is still supported after three years, but we decided to look at the current health of each framework to make a decision.
Viewing the initial public release date of the framework gives us an idea of the robustness of each framework. Older libraries should have better range of functionality and fewer major bugs, at least in theory.
React won easily, and its first public release was in March 2013. Although Vue was originally released in October 2015, it did not reach its peak until September 2016 release. Aurelia is a newbie and reached version 1.0 in August 2016.
Angular 2 is interesting: It's very different from version 1, and in fact, it was first released in September 2016.
Part of this evaluation involves delving into the development history of each library, not just the release date itself. A long and stable history of development—even in beta—of course, it also boosts confidence.
A variety of team members have been paying attention to the development of candidate frameworks, which gives us at least some understanding of the overall stability of each framework. Angular 2's problematic development history stands out among all the frameworks we review, with significant significant changes and unclear release dates. The framework was eventually released in its final version, but it was really messy in the process.
The ultimate key aspect of maturity (as mentioned above) is the ability to recruit experienced employees. Given our team’s limited experience in the framework of assessment and the radical timeline we face, we want to recruit experienced developers.
However, hiring people with specific experience can be limited, but it does make an impact in larger projects like ours. We eliminated Angular 2 at this stage because it failed to meet many of our previous requirements.
For the remaining frameworks, we first searched for different job search websites and posted separate job advertisements for each framework. We did not find job ads for Aurelia or Vue, nor did we receive any applications. In contrast, we found several React jobs and we received many high-quality applications.
Other functions
The rest of our list—developer tools and unit test support—is available in all the frameworks we view. Debugging is nearly impossible without reliable developer tools, and unit testing is almost essential for enterprise-class applications like ours.
Practical experience
No theory can be compared with practical experience. With this in mind, we chose two frameworks that meet most requirements—Arelia and React—and started coding in parallel. There is no good reason to omit Vue at this stage; we just don't have enough time to evaluate.
The given task is to build an authentication screen that matches the basic functions of our existing applications: log in, call the API, and establish a session. The two team members were assigned a framework separately and were given a calendar week to see what they could build.
Aurelia demo is more complete, partly due to the simpler setup process. After selecting the work done in each section, we do feel like we have a better understanding of what’s inside the React stack. Aurelia still wins easily in terms of ease of initial setup.
We cannot draw any important conclusions based solely on practical coding. Perhaps the only surprise is how similar the code is: This is largely due to the structural changes introduced in ECMAScript 6, both frameworks that use ECMAScript 6.
Result
Ultimately, our choice is React; most importantly, it chooses its maturity, community support and ease of recruitment. While React is the clear winner of our standards, it’s great to see such high-quality frameworks exist in the competitive framework we’re looking at.
Vue and Aurelia proved to be close behind. Vue leads slightly with a more complete feature list, but given our requirements, either one will probably serve well. If we don’t have time pressure, recruiting is less important, and we will expand our hands-on work to include Vue.
Angular 2 failed to meet most of our selection criteria and was disappointing. Despite its many advantages, it obviously doesn't suit us.
After choosing React and starting building our project, it is unlikely that we will do this again soon. As for you, what criteria will you add to our list? What have we missed, we could have done better? I look forward to your comments and suggestions.
This article was peer-reviewed by Stuart Mitchell, Ralph Mason and Vildan Softic. Thanks to all the peer reviewers at SitePoint for getting SitePoint content to its best!
FAQs on choosing the right front-end framework for your company
What key factors should be considered when choosing a front-end framework that suits our company?
A few key factors you should consider when choosing a front-end framework for your company. First, consider project requirements. Different frameworks have different pros and cons, so it is important to choose one that matches your project’s needs. Secondly, consider the learning curve. Some frameworks are easier to learn than others, which can affect development speed. Third, consider community and support. A strong community can provide valuable resources and help when you have problems. Finally, consider the performance and size of the framework. A lightweight, high-performance framework can bring a better user experience.
How does the size of the front-end frame affect its performance?
The size of the front-end frame will seriously affect its performance. Larger frameworks usually come with more features and features, but can also load and run slower. This can lead to a poor user experience, especially on slower internet connections or weaker devices. Smaller frames, on the other hand, are usually faster and more efficient, but they may lack certain features or functionality. Therefore, it is very important to balance the size and performance of the framework according to your project requirements.
What are some popular front-end frameworks and their advantages?
There are many popular front-end frameworks, each with its own advantages. For example, React is known for its virtual DOM and high performance, making it a good choice for complex dynamic web applications. Angular, on the other hand, is a fully functional framework that contains everything you need to build a web application, making it a good choice for large projects. Vue.js is known for its simplicity and ease of use, making it a good choice for new developers in small projects or front-end frameworks.
How important is community support when choosing a front-end framework?
Community support is very important when choosing a front-end framework. A strong community can provide a wealth of resources, including tutorials, documentation, and forums where you can ask questions and get help. Furthermore, large communities often show that the framework is popular and widely used, which can lead to more frequent updates and improvements.
Can I use multiple front-end frameworks in a single project?
While technically multiple front-end frameworks can be used in a single project, this is not usually recommended. Each framework has its own way of doing things, and mixing them can lead to confusion and complexity. Instead, it is usually best to choose the framework that best suits your project’s needs and stick with it.
How does the learning curve of the front-end framework affect project development?
The learning curve of the front-end framework will seriously affect project development. A framework with a steep learning curve may take longer to master, which may delay the start of development. On the other hand, a framework with a gentle learning curve allows you to start development faster. However, ease of learning should not be the only factor in choosing a framework. It is also necessary to consider the functionality of the framework and how well it matches the project requirements.
What is the role of front-end frameworks in web development?
Front-end frameworks play a crucial role in web development. It provides structure for the code to make it easier to maintain and scale. It also provides pre-written code for common tasks, thus speeding up the development process. In addition, front-end frameworks often include tools for testing and debugging, making it easier to ensure the quality of your code.
How often should I update the front-end framework I use?
It is very important to keep the front-end framework up-to-date. Updates usually include bug fixes, performance improvements, and new features. However, updating the framework can also introduce changes that break existing code, so it is important to thoroughly test your application after the update. Generally speaking, you should update your framework immediately after a new stable version is released.
How to make a decision between a monolithic and a micro front-end framework?
The decision between the monolithic and micro front-end framework depends on your project requirements. The monolithic framework provides everything you need in one package, which can simplify development, but may also include unnecessary features. On the other hand, the microframework only provides the basics, allowing you to add only the features you need. This may lead to lighter and more efficient applications, but it may also require more work to set up and maintain.
What resources are there to learn more about front-end frameworks?
There are many resources available to learn more about front-end frameworks. Online tutorials, documents and courses are a great place to start. Websites like Stack Overflow and GitHub can also provide valuable insights and examples. Additionally, many frameworks have their own communities where you can ask questions and learn from other developers.
The above is the detailed content of How to Choose the Right Front-end Framework for Your Company. For more information, please follow other related articles on the PHP Chinese website!

Detailed explanation of JavaScript string replacement method and FAQ This article will explore two ways to replace string characters in JavaScript: internal JavaScript code and internal HTML for web pages. Replace string inside JavaScript code The most direct way is to use the replace() method: str = str.replace("find","replace"); This method replaces only the first match. To replace all matches, use a regular expression and add the global flag g: str = str.replace(/fi

So here you are, ready to learn all about this thing called AJAX. But, what exactly is it? The term AJAX refers to a loose grouping of technologies that are used to create dynamic, interactive web content. The term AJAX, originally coined by Jesse J

10 fun jQuery game plugins to make your website more attractive and enhance user stickiness! While Flash is still the best software for developing casual web games, jQuery can also create surprising effects, and while not comparable to pure action Flash games, in some cases you can also have unexpected fun in your browser. jQuery tic toe game The "Hello world" of game programming now has a jQuery version. Source code jQuery Crazy Word Composition Game This is a fill-in-the-blank game, and it can produce some weird results due to not knowing the context of the word. Source code jQuery mine sweeping game

Article discusses creating, publishing, and maintaining JavaScript libraries, focusing on planning, development, testing, documentation, and promotion strategies.

This tutorial demonstrates how to create a captivating parallax background effect using jQuery. We'll build a header banner with layered images that create a stunning visual depth. The updated plugin works with jQuery 1.6.4 and later. Download the

The article discusses strategies for optimizing JavaScript performance in browsers, focusing on reducing execution time and minimizing impact on page load speed.

Matter.js is a 2D rigid body physics engine written in JavaScript. This library can help you easily simulate 2D physics in your browser. It provides many features, such as the ability to create rigid bodies and assign physical properties such as mass, area, or density. You can also simulate different types of collisions and forces, such as gravity friction. Matter.js supports all mainstream browsers. Additionally, it is suitable for mobile devices as it detects touches and is responsive. All of these features make it worth your time to learn how to use the engine, as this makes it easy to create a physics-based 2D game or simulation. In this tutorial, I will cover the basics of this library, including its installation and usage, and provide a

This article demonstrates how to automatically refresh a div's content every 5 seconds using jQuery and AJAX. The example fetches and displays the latest blog posts from an RSS feed, along with the last refresh timestamp. A loading image is optiona


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Safe Exam Browser
Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.