Evan You
a6c1db2728
fix(compiler-core): fix hoisting logic for elements with cached handlers + other bindings
...
fix #4327
2021-08-16 15:57:10 -04:00
Evan You
b7ea7c1485
perf: also hoist all-static children array
2021-07-16 14:30:49 -04:00
Evan You
02339b67d8
perf: hoist dynamic props lists
2021-07-16 14:30:49 -04:00
HcySunYang
ceff89905b
perf: improve VNode creation performance with compiler hints ( #3334 )
2021-07-16 14:30:49 -04:00
HcySunYang
7715c49af9
fix(compiler-core): avoid generating useless createVNode helper ( #2938 )
...
close #2739
2021-03-25 17:01:50 -04:00
Evan You
f74b16ccfe
fix(compiler): properly bail stringfication for nested slot elements
2021-03-05 18:28:12 -05:00
Evan You
a8352506f6
refactor: cache constant check result on transform context
...
also fix edge case for missed createVNode import on static svg nodes
2020-12-03 11:10:40 -05:00
Evan You
90bdf59f4c
refactor(compiler): better constant hoist/stringify checks
2020-11-20 19:26:07 -05:00
Evan You
128621d6a0
wip: further optimize bindings
2020-11-12 16:11:14 -05:00
Evan You
91700fbec2
refactor(compiler-core): simplify hoistStatic check for nodes without patchFlag
...
close #1912
2020-08-20 11:43:34 -04:00
Felix Rilling
829b35e426
chore: typo fixes ( #1546 )
...
* chore: fix typos in comments/JSDoc.
* chore: fix typo in internal function name.
* chore: fix typos in test comments/descriptions/variable names.
2020-07-08 12:32:42 +02:00
Evan You
9b5d13e598
fix: bail stringification for slots
...
fix #1281 , close #1286
2020-06-10 14:31:59 -04:00
Evan You
dd2bfb5a8f
fix(compiler-dom): should bail stringification on runtime constant regardless of position
...
ref: vuejs/vite#157
2020-05-18 10:04:18 -04:00
Evan You
d965bb6227
feat: improve static content stringiciation
...
Now a single static vnode can contain stringified content
for multiple consecutive nodes, which greatly improves the
coverage of this optimization.
2020-05-16 21:30:16 -04:00
Evan You
cb9444807e
wip(compiler): improve node stringification to support adjacent nodes
2020-05-15 12:58:44 -04:00
Evan You
cad25d95a3
fix(compiler-core): hoisted vnode calls and scoped id calls should be marked pure
...
Otherwise they cannot be tree-shaken
2020-05-01 17:34:11 -04:00
HiiTea
22717772dd
chore: fix typos ( #1090 )
2020-05-01 09:42:58 -04:00
djy0
c11905fe36
chore: fix typo ( #764 ) [ci skip]
2020-02-24 18:01:26 +01:00
Evan You
66b5f0b480
chore: fix hoistStatic exhaustive check
2020-02-14 16:41:55 -05:00
Evan You
5455e8e69a
fix(compiler-core): should not hoist element with cached + merged event handlers
2020-02-13 18:34:08 -05:00
Evan You
6b505dcd23
wip(ssr): basic element hydration
2020-02-13 17:47:00 -05:00
Evan You
175f8aae8d
feat(compiler): mark hoisted trees with patchFlag
2020-02-12 13:31:29 -05:00
Evan You
27913e661a
feat(compiler-dom/runtime-dom): stringify eligible static trees
2020-02-12 11:56:42 -05:00
Evan You
e3988b40d8
refactor(compiler-core): use dedicated node type for element codegen
...
Previously codegen node for elements and components used raw expressions,
which leads to multiple permutations of AST shapes based on whether the
node is a block or has directives. The complexity is spread across the
entire compiler and occurs whenever a transform needs to deal with
element codegen nodes.
This refactor centralizes the handling of all possible permutations
into the codegen phase, so that all elements/components will have a
consistent node type throughout the transform phase.
The refactor is split into two commits (with test updates in a separate
one) so changes can be easier to inspect.
2020-02-11 18:40:42 -05:00
Evan You
f4c54a888b
refactor(compiler-core): hoist static text calls between elements
2020-02-10 18:32:11 -05:00
Evan You
af5a8e1154
feat(compiler-core): re-implement v-once to use cache mechanism
2019-10-23 17:57:40 -04:00
Evan You
052febc127
feat(compiler): convert text mixed with elements into createVNode calls
...
This ensures they are tracked as dynamic children when inside blocks.
Also guaruntees compiled vnodes always have vnode children in arrays
so that they can skip normalizeVNode safely in optimized mode.
2019-10-21 15:52:29 -04:00
Evan You
6f9692dcdd
chore: cache isStaticNode result for missing branch
2019-10-20 17:01:01 -04:00
Evan You
869ae19c41
fix(compiler): cache handlers should be per-instance, fix hoist w/ cached handlers
2019-10-20 17:00:11 -04:00
Evan You
58593c4714
feat(v-on): cache handlers
2019-10-18 21:51:34 -04:00
Evan You
e98a85f3cb
refactor: applyDirectives -> withDirectives
2019-10-18 16:35:01 -04:00
Evan You
6a75c3463b
feat(compiler-core): do not generate TEXT flag if child is constant
2019-10-16 12:00:55 -04:00
Carlos Rodrigues
6607edab2d
refactor(compiler-core): avoid has call ( #314 )
2019-10-16 10:46:41 -04:00
Carlos Rodrigues
b54c05f751
types: improve typing ( #313 )
2019-10-16 10:15:03 -04:00
HcySunYang
68a3879b88
feat(compiler-core): more hoisting optimizations ( #276 )
2019-10-15 11:41:24 -04:00
Illya Klymov
80f5cb2700
fix(compiler): do not hoist element with dynamic key ( #187 )
2019-10-10 11:19:17 -04:00
Evan You
16da9ae89f
fix(compiler): handle block nodes with custom directives + improve ast types
2019-10-08 10:50:10 -04:00
Evan You
57a5c61320
test: tests for hoistStatic
2019-10-07 17:12:22 -04:00
Evan You
82bd9eb1db
refactor(compiler): refine codegen node types
2019-10-05 22:48:13 -04:00
Evan You
bfecf2cdce
refactor(compiler): use symbols for runtime helpers
2019-10-05 22:48:13 -04:00
Evan You
21666243e9
fix(compiler): props hoist should also work on elements w/ TEXT flag
2019-10-04 22:51:51 -04:00
Evan You
9c9ef609d8
fix: import patchFlags from @vue/shared in compiler instead
...
Otherwise this imports unnecessary stuff from the runtime.
2019-10-04 22:47:09 -04:00
Evan You
277651ce89
fix(compiler): avoid hoisting components and directive calls
2019-10-04 14:34:26 -04:00
Evan You
b61d9652dd
chore: shorten option name
2019-10-04 09:03:00 -04:00
Evan You
095f5edf8d
feat(compiler): hoist static trees
2019-10-03 23:30:25 -04:00