Questo prodotto usufruisce delle SPEDIZIONI GRATIS
selezionando l'opzione Corriere Veloce in fase di ordine.
Pagabile anche con Carta della cultura giovani e del merito, 18App Bonus Cultura e Carta del Docente
Vue.js, as the Data-driven front-end framework, stands out as one of the mainstream choices for front-end developers. This book provides a detailed introduction of Vue.js framework design principles, including an overview of framework design, response systems, renderers, componentization, compilers, and server-side rendering. Based on Vue.js 3 and strict compliance with the specifications, this book starts from source code with a large number of visual diagrams combined, explaining the implementation of each functional module in Vue.js step by step.
By reading this book, developers with hands-on experience with Vue.js 2/3 will be able to further understand the implementation details of Vue.js framework, while front-end developers who are not experienced in vue.js but interested in framework design can quickly grasp the design principle of vue.js.
Part I Overview of Framework Design
Chapter 1 Art of Trade-Offs
1.1 Imperative and Declarative
1.2 Trade-Offs Between Performance and Maintainability
1.3 How Does the Virtual DOM Perform
1.4 Run Time and Compile Time1.5 Summary
Chapter 2 Core Elements of Framework Design
2.1 Improving User Experience in Development
2.2 Controlling the Volume of the Framework Code
2.3 Frameworks Need Good Tree-Shaking
2.4 What Kind of Bundle Should Frameworks Output
2.5 Feature Switches
2.6 Error Handling
2.7 Excellent TypeScript Support2.8 Summary
Chapter 3 Design Ideas of Vue.js 3
3.1 Describing UI Declaratively
3.2 Getting to Know Renderers
3.3 Essence of Components
3.4 Working Principle of Templates3.5 Vue.js Is an Organic Whole Composed of Various Modules
3.6 Summary
Part II Response System
Chapter 4 The Role and Implementation of Response System
4.1 Responsive Data and Side Effect Functions4.2 Basic Implementation of Responsive Data
4.3 Designing a Perfect Response System
4.4 Branch Switching and Cleanup4.5 Nested Effects and Effect Stacks
4.6 Avoiding Infinite Recursive Loops
4.7 Scheduling Execution4.8 Computation Attributes Computed and Lazy
4.9 Implementation Principles of Watch
4.10 Immediate Watch and Callback Execution Timing4.11 Side Effects of Expiration
4.12 Summary
Chapter 5 Responsive Schemes for Non-Original Values
5.1 Understanding Proxy and Reflect
5.2 How JavaScript Objects and Proxy Work5.3 How to Proxy Objects
5.4 Reasonable Response Trigger
5.5 Shallow Response VS Deep Response5.6 Read-Only and Shallow Read-Only
5.7 Proxy Arrays
5.7.1 Index and Length of Arrays5.7.2 Traversal of Arrays
5.7.3 Array Search Method
5.7.4 Prototype Method for Implicitly Modifying Array Length5.8 Proxies Set and Map
5.8.1 How to Proxy Set and Map
5.8.2 Establishing Responsive Linkages5.8.3 Avoiding Contaminating the Original Data Source
5.8.4 Handling forEach
5.8.5 Iterator Methods5.8.6 Values and Keys Methods
5.9 Summary
Chapter 6 Responsive Schemes for Raw Values
6.1 Introducing the Concept of Ref
6.2 Response Loss Problems
6.3 Automatic Ref Removal
6.4 Summary
Part III Renderers
Chapter 7 Renderer Design
7.1 Integration of Renderers and Response System
7.2 Fundamentals of Renderers7.3 Custom Renderers
7.4 Summary
Chapter 8 Mount and Update
8.1 Mounting Properties of Sub-nodes and Elements
8.2 HTML Attributes and DOM Properties
8.3 Setting Element Properties Correctly
8.4 Class Processing
8.5 Unloading Operations8.6 Distinguishing the Type of Vnode
8.7 Handling of Events
8.8 Event Bubbling and Update Timing Issues8.9 Updating Sub-nodes
8.10 Text Nodes and Comment Nodes
8.11 Fragment8.12 Summary
Chapter 9 Simple Diff Algorithms
9.1 Reducing Performance Overhead for DOM Operations
9.2 DOM Replication and the Role of Key
9.3 Finding the Elements That Need to Be Moved
9.4 How to Move Elements
9.5 Adding New Elements
9.6 Removing Non-existent Elements
9.7 Summary
Chapter 10 Double-Ended Diff Algorithms
10.1 Principles of Double-Ended Comparison
10.2 Advantages of Double-Ended Comparison
10.3 Treatment of Non-ideal Conditions
10.4 Adding New Elements
10.5 Removing Non-existent Elements
10.6 Summary
Chapter 11 Fast Diff Algorithms
11.1 Same Precondition and Postcondition Elements
11.2 Determining Whether DOM Movement Operation Is Required
11.3 How to Move Elements11.4 Summary
Part IV Componentization
Chapter 12 Implementation Principles of Components
12.1 Rendering Components
12.2 Component Status and Self-Updating
12.3 Component Instances and Component Lifetime
12.4 Passive Update of Props and Components
12.5 The Role and Implementation of Setup Functions
12.6 Implementation of Component Events and Emit
12.7 Working Principles and Implementation of Slots
12.8 Registration Lifetime
12.9 Summary
Chapter 13 Asynchronous Components and Functional Components
13.1 Problems to Be Solved by Asynchronous Components13.2 Implementation Principles of Asynchronous Components
13.2.1 Encapsulation of defineAsyncComponent Function
13.2.2 Timeout and Error Components13.2.3 Delay and Loading Components
13.2.4 Retry Mechanism
13.3 Functional Components13.4 Summary
Chapter 14 Built-In Components and Modules
14.1 Implementation Principles of KeepAlive Component
14.1.1 Activation and Deactivation of Components
14.1.2 Include and Exclude
14.1.3 Cache Management
14.2 Implementation Principles of Teleport Components
14.2.1 Problems to Be Solved by Teleport Components14.2.2 Implementing Teleport Components
14.3 Implementation Principles of Transition Components
14.3.1 Transition of Native DOM14.3.2 Implementation of Transition Components
14.4 Summary
Part V Compilers
Chapter 15 Overview of Core Technologies of Compilers
15.1 Compilers for Template DSL15.2 Implementation Principles of Parsers and Finite State Machines
15.3 Constructing AST
15.4 AST Transformation and Plug-In Architecture15.4.1 Access to Nodes
15.4.2 Conversion and Node Operations
15.4.3 Entry and Exit15.5 Converting Template AST to JavaScript AST
15.6 Code Generation
15.7 Summary
Chapter 16 Parsers
16.1 Text Patterns and Their Impact on Parsers
16.2 Recursive Descent Algorithm Construction Template AST
16.3 Start and Stop of Finite State Machines
16.4 Parsing Label Nodes
16.5 Parsing Attributes
16.6 Parsing Text and Decoding HTML Entities
16.6.1 Parsing Text
16.6.2 Decode Named Character References16.6.3 Decode Numeric Character References
16.7 Analytic Interpolation and Annotation
16.8 Summary
Chapter 17 Compilation Optimization
17.1 Dynamic Node Collection and Patch Flags
17.1.1 Problems of Traditional Diff Algorithms
17.1.2 Block and PatchFlags
17.1.3 Collecting Dynamic Nodes
17.1.4 Runtime Support for Renderers
17.2 Block Trees
17.2.1 Nodes with V-if Instructions17.2.2 Nodes with V-for Instructions
17.2.3 Fragment Stability
17.3 Static Lifting17.4 Pre-stringing
17.5 Caching Inline Event Handlers
17.6 V-once17.7 Summary
Part VI Server-Side Rendering
Chapter 18 Isomorphic Rendering
18.1 CSR, SSR, and Isomorphic Rendering
18.2 Rendering Virtual DOM as HTML Strings
18.3 Rendering Components as HTML Strings18.4 Principles of Client-Side Activation
18.5 Writing Isomorphic Code
18.5.1 Component Lifetime18.5.2 Using Cross-Platform APIs
18.5.3 Introducing Modules Only at One End
18.5.4 Avoiding State Contamination Caused by Cross Requests18.5.5 < ClientOnly > Components
18.6 Summary
HcySun Yang is the core member of the official Vue.js team, focusing on web R&D. He is one of the core contributors of Vue.js 3, the author of Vuese (a vue.js document generator), an active member of the technical community. He has written a number of well-received technical blogs. He is also an inspirational programmer who has worked for ByteDance, Meituan, and other major Internet companies. In addition, he was a special guest speaker at the 2021 Vue Conf conference.
Il sito utilizza cookie ed altri strumenti di tracciamento che raccolgono informazioni dal dispositivo dell’utente. Oltre ai cookie tecnici ed analitici aggregati, strettamente necessari per il funzionamento di questo sito web, previo consenso dell’utente possono essere installati cookie di profilazione e marketing e cookie dei social media. Cliccando su “Accetto tutti i cookie” saranno attivate tutte le categorie di cookie. Per accettare solo deterninate categorie di cookie, cliccare invece su “Impostazioni cookie”. Chiudendo il banner o continuando a navigare saranno installati solo cookie tecnici. Per maggiori dettagli, consultare la Cookie Policy.