Implement virtual dom patch in vue (detailed tutorial)
This article mainly introduces the patch source code analysis of vue virtual dom. Now I will share it with you and give you a reference.
This article introduces the patch source code analysis of vue virtual dom and shares it with everyone. The details are as follows:
Source code directory: src/core/vdom/patch.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 |
|
##updateChildren method mainly passes
while Loop to compare the child nodes of the two trees to update
dom, and change the old one by comparing the new one to achieve the purpose of unifying the old and new.
a, b, c, d, etc. , different codenames represent different
vnode, such as:
oldStartVnode=a, newStartVnode=a;If the
sameVnode(oldStartVnode,newStartVnode) logic is hit, directly call the
patchVnode(oldStartVnode,newStartVnode,insertedVnodeQueue) method to update the node
a, then set the
oldStartIdx and
newStartIdx indexes to 1 respectively, as shown in the figure:
aAfter that, we start the second comparison. At this time,
oldStartVnode=b,newEndVnode=b; hits the
sameVnode(oldStartVnode,newEndVnode) logic, and then calls
patchVnode( oldStartVnode, newEndVnode, insertedVnodeQueue) method to update the node
b, and then call
canMove && nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm)), Move node
b to the far right of the tree, and finally index
oldStartIdx to 1 and
newEndIdx to index -1, as shown in the figure:
b, we start the third comparison. At this time,
oldEndVnode=d, newStartVnode=d; hits
sameVnode(oldEndVnode, newStartVnode) Logic, call
patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue) method to update the node
d, and then call
canMove && nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode. elm), move
d to the left of
c. Finally, index
oldEndIdx to -1 and
newStartIdx to index 1, as shown in the figure:
##After updating
, we start the fourth comparison. At this time newStartVnode=e
, node e
does not exist in the old tree, so it should be inserted as a new element, call createElm( newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm)
, and then the nodeOps.insertBefore(parent, elm, ref)
method is executed to insert e
before c
, then index newStartIdx
as 1, as shown in the figure: After
is inserted into node
, we can see newStartIdx
is already greater than newEndIdx
, while
loop has been completed. Then call removeVnodes(parentElm, oldCh, oldStartIdx, oldEndIdx)
to delete the old c
, as shown in the final figure:
has completed the update of the child nodes of the old tree through the above steps. In fact, only relatively small dom
operations are used, which improves the performance, and as the child nodes become more complex, this The improvement effect is more obvious. vnode
After generating dom
through the patch
method, mounted hook
will be called. At this point, the entire vue
instance is created Completed, when the watcher
of this vue
instance observes data changes, it will call the render
method twice to generate a new vnode
, Then call the patch
method to compare the old and new vnode
to update dom
. The above is what I compiled for everyone. I hope it will be helpful to everyone in the future. .
Related articles:
JQuery selects the selected value method of the select component$set and array in vue.js Update method_vue.jsVue and vue-i18n are combined to implement multi-language switching method of background dataThe above is the detailed content of Implement virtual dom patch in vue (detailed tutorial). For more information, please follow other related articles on the PHP Chinese website!

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

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

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

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

Hot Topics

Dewu APP is currently a very popular brand shopping software, but most users do not know how to use the functions in Dewu APP. The most detailed usage tutorial guide is compiled below. Next is the Dewuduo that the editor brings to users. A summary of function usage tutorials. Interested users can come and take a look! Tutorial on how to use Dewu [2024-03-20] How to use Dewu installment purchase [2024-03-20] How to obtain Dewu coupons [2024-03-20] How to find Dewu manual customer service [2024-03-20] How to check the pickup code of Dewu [2024-03-20] Where to find Dewu purchase [2024-03-20] How to open Dewu VIP [2024-03-20] How to apply for return or exchange of Dewu

Quark Browser is a very popular multi-functional browser at the moment, but most friends don’t know how to use the functions in Quark Browser. The most commonly used functions and techniques will be sorted out below. Next, the editor will guide users. Here is a summary of the multi-functional usage tutorials of Quark Browser. Interested users can come and take a look together! Tutorial on how to use Quark Browser [2024-01-09]: How to scan test papers to see answers on Quark [2024-01-09]: How to enable adult mode on Quark Browser [2024-01-09]: How to delete used space on Quark [2024 -01-09]: How to clean up the Quark network disk storage space [2024-01-09]: How to cancel the backup of Quark [2024-01-09]: Quark

How to upgrade numpy version: Easy-to-follow tutorial, requires concrete code examples Introduction: NumPy is an important Python library used for scientific computing. It provides a powerful multidimensional array object and a series of related functions that can be used to perform efficient numerical operations. As new versions are released, newer features and bug fixes are constantly available to us. This article will describe how to upgrade your installed NumPy library to get the latest features and resolve known issues. Step 1: Check the current NumPy version at the beginning

1. First open WeChat. 2. Click [+] in the upper right corner. 3. Click the QR code to collect payment. 4. Click the three small dots in the upper right corner. 5. Click to close the voice reminder for payment arrival.

PhotoshopCS is the abbreviation of Photoshop Creative Suite. It is a software produced by Adobe and is widely used in graphic design and image processing. As a novice learning PS, let me explain to you today what software photoshopcs5 is and how to use photoshopcs5. 1. What software is photoshop cs5? Adobe Photoshop CS5 Extended is ideal for professionals in film, video and multimedia fields, graphic and web designers who use 3D and animation, and professionals in engineering and scientific fields. Render a 3D image and merge it into a 2D composite image. Edit videos easily

After rain in summer, you can often see a beautiful and magical special weather scene - rainbow. This is also a rare scene that can be encountered in photography, and it is very photogenic. There are several conditions for a rainbow to appear: first, there are enough water droplets in the air, and second, the sun shines at a low angle. Therefore, it is easiest to see a rainbow in the afternoon after the rain has cleared up. However, the formation of a rainbow is greatly affected by weather, light and other conditions, so it generally only lasts for a short period of time, and the best viewing and shooting time is even shorter. So when you encounter a rainbow, how can you properly record it and photograph it with quality? 1. Look for rainbows. In addition to the conditions mentioned above, rainbows usually appear in the direction of sunlight, that is, if the sun shines from west to east, rainbows are more likely to appear in the east.

Testing a monitor when buying it is an essential part to avoid buying a damaged one. Today I will teach you how to use software to test the monitor. Method step 1. First, search and download the DisplayX software on this website, install it and open it, and you will see many detection methods provided to users. 2. The user clicks on the regular complete test. The first step is to test the brightness of the display. The user adjusts the display so that the boxes can be seen clearly. 3. Then click the mouse to enter the next link. If the monitor can distinguish each black and white area, it means the monitor is still good. 4. Click the left mouse button again, and you will see the grayscale test of the monitor. The smoother the color transition, the better the monitor. 5. In addition, in the displayx software we

With the continuous development of smart phones, the functions of mobile phones have become more and more powerful, among which the function of taking long pictures has become one of the important functions used by many users in daily life. Long screenshots can help users save a long web page, conversation record or picture at one time for easy viewing and sharing. Among many mobile phone brands, Huawei mobile phones are also one of the brands highly respected by users, and their function of cropping long pictures is also highly praised. This article will introduce you to the correct method of taking long pictures on Huawei mobile phones, as well as some expert tips to help you make better use of Huawei mobile phones.
