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