Home Web Front-end JS Tutorial Framework classification and main functions of javascript framework design_javascript skills

Framework classification and main functions of javascript framework design_javascript skills

May 16, 2016 pm 03:53 PM

From the perspective of internal architecture and concepts, the current JavaScript framework can be divided into 5 categories.

The first is a namespace-oriented class library or framework . If you create an array, use new Array(), and generate an object, use new Object(), which is completely java style. Therefore, We use a certain object as the base, and constantly add objects and secondary object attributes to it to organize the code, building it up like a pyramid. In the early days, it represented YUI, EXT (so, not all dynamic companies still use them)

The second is a class factory-oriented framework . Famous ones include Prototype, mootools, Base2, and Ten. Basically, except for the most basic namespace, other modules are class objects derived from class factories. In particular, mootools1.3 encapsulates all types into Type types.

The third type is the selector-oriented framework represented by jQuery. The entire framework or library body is a special array-like object, which facilitates centralized operations (because the selector suddenly N element nodes were selected), so they were processed together. There are several great things about jQuery:

"No new instantiation" technology, $(expr) returns an instance, no explicit new is required;
get first set all access rules;
Data caching system. This way you can assign node events.
IIFE was also discovered

The fourth type is the framework connected by loaders. It has multiple javascript files, and each javascript file is written according to fixed rules. Among them, the most famous is AMD. Modularization is a sign that JavaScript is moving toward industrialization. “The only way to write complex software without making it messy is to define clear interfaces and combine several modules. In this way, most problems will only appear locally, so there are still problems.” It is hoped that local improvements and optimizations can be made without affecting the whole body. "Many enterprise internal frameworks basically adopt this architecture, such as Dojo, YUI, Kissy, qwrap, mass, (requirejs, Seajs), etc.

The fifth type is MV* with a clear layered architecture. The first is javascript MVC, (now called Canjs), backbone.js and spinejs, and then the MVVM framework that is more in line with the actual front-end. For example, knockout, emberm, angular, avalon, winjs. In the MVVM framework, the original DOM operations are replaced by declarative binding, which is handled freely by the framework, and the user only focuses on the business code.

Main functions of javascript framework

The module division of the jQuery framework class library is mainly based on the source code on github, which is basically a module and a javascript file. jQuery’s idea of ​​focusing on DOM operations was right from the beginning, and it will continue to improve compatibility in the future. Performance improvements have been made. After years of development, jQuery’s huge plug-ins and complete BUG submission channels have allowed it to continue to improve

Prototype.jsThe early king, it is divided into four parts.

Language extension
DOM extension
Ajax part
The abandoned part, the new version uses other methods to achieve the original functions

Prototype.js has a wide range of language extensions, including basic data types and "classes" borrowed from the language. Among them, Enumerable is just an ordinary method package, while ObjectRange, PeriodicalExecuter, and Templat are produced using the Class class factory (from community contributions).

mootoolsBecause the API design is very elegant and there are many high-quality plug-ins on its official website, it has not declined in the wave of opposition to prototype extensions.

Rightjs: Another framework for prototype extension, MochiKit is a Python-style framework that is very unique and can be ranked among the top ten frameworks.
Ten: The Javascript framework of the famous Japanese blog community Hatena, developed by amachang, influenced by Prototype.js, is the earliest example of a framework named after space; mass Framework: a jQuery-style framework targeting large module development .

After detailed comparison, we can easily draw conclusions about the following framework features

对基本数据的操作是基础,如jQuery提供的trim camelCase each map等方法,Prototype.js等入侵式框架则在原型上添加camelize等方法
类型的判定比不可少,常见的形式是jsXXX系列
选择器,domReady Ajax是现代框架的标配
DOM操作是重中之重,节点的遍历,样式操作,属性操作也属于它的范畴
现在主流的事件系统都支持事件代理
数据的缓存与处理,目前浏览器也支持data-属性进行操作,但不好用,需要框架封装
动画引擎
插件的易开发和扩展性
提供诸如Deferred这样处理异步的解决方案
即使不专门提供一个类工厂,也应该存在一个名为extend或mixin的方法对对象进行扩展。jQuery虽然没有类工厂,但在jQuery UI中也不得不增加一个,可见其重要性。
自从jQuery出来一个名为noConflict的方法,新兴的框架都带此方法,以求狭缝中生存。
许多框架非常重视Cookie操作。
Copy after login

The above is the entire content of this article, I hope you all like it.

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

What should I do if I encounter garbled code printing for front-end thermal paper receipts? What should I do if I encounter garbled code printing for front-end thermal paper receipts? Apr 04, 2025 pm 02:42 PM

Frequently Asked Questions and Solutions for Front-end Thermal Paper Ticket Printing In Front-end Development, Ticket Printing is a common requirement. However, many developers are implementing...

Demystifying JavaScript: What It Does and Why It Matters Demystifying JavaScript: What It Does and Why It Matters Apr 09, 2025 am 12:07 AM

JavaScript is the cornerstone of modern web development, and its main functions include event-driven programming, dynamic content generation and asynchronous programming. 1) Event-driven programming allows web pages to change dynamically according to user operations. 2) Dynamic content generation allows page content to be adjusted according to conditions. 3) Asynchronous programming ensures that the user interface is not blocked. JavaScript is widely used in web interaction, single-page application and server-side development, greatly improving the flexibility of user experience and cross-platform development.

Who gets paid more Python or JavaScript? Who gets paid more Python or JavaScript? Apr 04, 2025 am 12:09 AM

There is no absolute salary for Python and JavaScript developers, depending on skills and industry needs. 1. Python may be paid more in data science and machine learning. 2. JavaScript has great demand in front-end and full-stack development, and its salary is also considerable. 3. Influencing factors include experience, geographical location, company size and specific skills.

How to merge array elements with the same ID into one object using JavaScript? How to merge array elements with the same ID into one object using JavaScript? Apr 04, 2025 pm 05:09 PM

How to merge array elements with the same ID into one object in JavaScript? When processing data, we often encounter the need to have the same ID...

Is JavaScript hard to learn? Is JavaScript hard to learn? Apr 03, 2025 am 12:20 AM

Learning JavaScript is not difficult, but it is challenging. 1) Understand basic concepts such as variables, data types, functions, etc. 2) Master asynchronous programming and implement it through event loops. 3) Use DOM operations and Promise to handle asynchronous requests. 4) Avoid common mistakes and use debugging techniques. 5) Optimize performance and follow best practices.

How to achieve parallax scrolling and element animation effects, like Shiseido's official website?
or:
How can we achieve the animation effect accompanied by page scrolling like Shiseido's official website? How to achieve parallax scrolling and element animation effects, like Shiseido's official website? or: How can we achieve the animation effect accompanied by page scrolling like Shiseido's official website? Apr 04, 2025 pm 05:36 PM

Discussion on the realization of parallax scrolling and element animation effects in this article will explore how to achieve similar to Shiseido official website (https://www.shiseido.co.jp/sb/wonderland/)...

The difference in console.log output result: Why are the two calls different? The difference in console.log output result: Why are the two calls different? Apr 04, 2025 pm 05:12 PM

In-depth discussion of the root causes of the difference in console.log output. This article will analyze the differences in the output results of console.log function in a piece of code and explain the reasons behind it. �...

The Evolution of JavaScript: Current Trends and Future Prospects The Evolution of JavaScript: Current Trends and Future Prospects Apr 10, 2025 am 09:33 AM

The latest trends in JavaScript include the rise of TypeScript, the popularity of modern frameworks and libraries, and the application of WebAssembly. Future prospects cover more powerful type systems, the development of server-side JavaScript, the expansion of artificial intelligence and machine learning, and the potential of IoT and edge computing.

See all articles