Commit Graph

336 Commits

Author SHA1 Message Date
Evan You
54d06ec495 feat(runtime-core): support variadic children in h for simple JSX compat
ref: #1917
2020-08-21 21:54:33 -04:00
Evan You
7454e2a52b build(deps): upgrade to TypeScript 4 2020-08-20 17:48:28 -04:00
HcySunYang
255a2bd178
test(runtime-core): add tests for the optimized mode (#1884) 2020-08-20 10:56:31 -04:00
Evan You
d4cc7b2496 fix(teleport): only inherit el for non-patched nodes
fix #1903
2020-08-20 10:44:28 -04:00
Evan You
1eb6067a85 fix(runtime-core): fix beforeUpdate call timing to allow state mutation
fix #1899
2020-08-19 17:57:51 -04:00
Evan You
eb2ae44d94 refactor(types): widen Component type to include consutructor types
returned from `defineComponent`

ref: https://github.com/vuejs/vue-router-next/pull/421
also close #1880

Previous `Component` type is now exported as `ConcreteComponent`.

This introduces a minor breaking change when calling `h(comp, { ... })`
will now fail if `comp` is a of generic `Component` type, since it does
not specify what props it expects.
2020-08-19 16:19:25 -04:00
Evan You
223f180529 test(watch): add same value skipping trigger test 2020-08-14 17:35:49 -04:00
HcySunYang
caccec3f78
fix(runtime-core/scheduler): sort postFlushCbs to ensure refs are set before lifecycle hooks (#1854)
fix #1852
2020-08-14 09:50:23 -04:00
Evan You
611437a3fe fix(runtime-core/scheduler): allow component render functions to trigger itself
fix #1801
2020-08-13 17:42:47 -04:00
HcySunYang
3991ff03ce
fix(runtime-core): separate null vs. non-null ref value updates (#1835)
fix #1789, fix #1834
2020-08-13 12:27:17 -04:00
Evan You
791eff3dfb fix(runtime-core): avoid manual slot invocation in template expressions interfering with block tracking
fix #1745
2020-08-06 10:16:13 -04:00
zhangzhonghe
233d191d0d
fix(keep-alive): fix activated hook invocation on nested components (#1743)
fix #1742
2020-08-06 09:42:52 -04:00
Evan You
3692f2738f refactor(runtime-core/scheduler): dedicated preFlush queue
properly fix #1763, #1777, #1781
2020-08-05 10:55:23 -04:00
Evan You
a0e34cee4a fix(watch): exhaust pre-flush watchers + avoid duplicate render by pre-flush watchers
close #1777
2020-08-04 13:20:23 -04:00
Eduardo San Martin Morote
b5f91ff570
fix(watch): allow handler to be a string (#1775)
fix #1774
2020-08-04 12:42:47 -04:00
Yang Mingshan
b2a91429ed
fix(runtime-core/scheduler): prevent duplicate queue (#1767) 2020-08-03 17:19:06 -04:00
Evan You
d4c17fb48b fix(watch): pre-flush watcher watching props should trigger before component update
fix #1763
2020-08-03 16:49:30 -04:00
Evan You
fce2689ff1 fix(watch): should trigger watcher callback on triggerRef when watching ref source
fix #1736
2020-07-30 18:29:38 -04:00
Evan You
09702e95b9 fix(runtime-core/scheduler): only allow watch callbacks to be self-triggering
fix #1740

Previous fix for #1727 caused `watchEffect` to also recursively trigger
itself on reactive array mutations which implicitly registers array
`.length` as dependencies and mutates it at the same time.

This fix limits recursive trigger behavior to only `watch()` callbacks
since code inside the callback do not register dependencies and
mutations are always explicitly intended.
2020-07-30 17:57:20 -04:00
Carlos Rodrigues
ce78eac8e9
fix(runtime-core): check if the key is string on undefined property warning (#1731) 2020-07-29 10:06:36 -04:00
underfin
04a4ebaaeb
fix(runtime-core): use correct container for moving Teleport content (#1703) 2020-07-28 11:23:39 -04:00
Evan You
7e8b26eba8 refactor(runtime-core): make nextTick() promise reject on scheduler flush error 2020-07-28 10:40:25 -04:00
Evan You
3cc768f9f2 refactor(runtime-core): adjust error handling behavior
- Crash in dev to make the errors more noticeable
- Recover in prod to reduce impact on end users
2020-07-28 10:40:25 -04:00
Evan You
5c74243211 test: move mockWarn into setup files 2020-07-27 22:58:51 -04:00
Evan You
354d79c42b fix(runtime-core): respect render function from mixins
fix #1630
2020-07-27 17:44:17 -04:00
Evan You
1af3531719 fix(runtime-core): fix attr fallthrough on compiled framgent w/ single static element + comments 2020-07-21 13:11:19 -04:00
Tan Li Hau
288b4eab9e
fix(watch): fix watching reactive array (#1656)
fixes #1655
2020-07-20 12:39:22 -04:00
Carlos Rodrigues
8facaefcc3
fix(watch): callback not called when using flush:sync (#1633) 2020-07-19 13:30:24 -04:00
Evan You
341b30c961 fix(watch): post flush watchers should not fire when component is unmounted
fix #1603
2020-07-17 11:17:29 -04:00
Guillaume Chau
568b6db12b
feat: Initial devtools support (#1125) 2020-07-16 18:18:52 -04:00
Evan You
165068dbc2 perf(runtime-core): avoid duplicate postFlushCb invocation
Also improve flush performance by using for loop instead of shift()

fix #1595
2020-07-15 22:36:41 -04:00
Evan You
32a4cb804b test: improve coverage 2020-07-15 10:38:45 -04:00
Evan You
056a13142f test: fix fragment unkeyed fragment test flag 2020-07-15 10:10:38 -04:00
春去春又来
379a8af288
test(runtime-core): add test for rendererComponent (#1393) 2020-07-15 09:34:23 -04:00
Evan You
00ab9e2e85 refactor: adjust event options handling to be JSX friendly 2020-07-14 13:20:59 -04:00
Evan You
380c6792d8 fix(v-on): refactor DOM event options modifer handling
fix #1567

Previously multiple `v-on` handlers with different event attach option
modifers (`.once`, `.capture` and `.passive`) are generated as an array
of objects in the form of `[{ handler, options }]` - however, this
makes it pretty complex for `runtime-dom` to properly handle all
possible value permutations, as each handler may need to be attached
with different options.

With this commit, they are now generated as event props with different
keys - e.g. `v-on:click.capture` is now generated as a prop named
`onClick.capture`. This allows them to be patched as separate props
which makes the runtime handling much simpler.
2020-07-14 11:48:05 -04:00
Evan You
ba3b3cdda9 fix(runtime-core/emits): merge emits options from mixins/extends
fix #1562
2020-07-13 11:55:46 -04:00
Evan You
00f6031fbf test: assert vnode invalid key warning for NaN 2020-07-08 11:48:12 -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
d86b01ba3a fix(keep-alive): fix keep-alive with scopeId/fallthrough attrs
fix #1511
2020-07-06 18:17:40 -04:00
Evan You
36b6b4f022 fix(runtime-core/template-ref): template ref used in the same template should trigger update
fix #1505
2020-07-06 16:40:00 -04:00
Evan You
4e8e689572 fix: ensure vnode hooks are called consistently regardless of keep-alive 2020-07-01 19:50:13 -04:00
Evan You
c9629f2692 feat(runtime-core): support creating vnode from existing vnode
This allows passing vnode around with curried props and use it in
places where VNodeType is expected, e.g. `<component :is=""/>`
2020-07-01 19:48:01 -04:00
Evan You
978d9522e8 fix(runtime-core): fix scopeId inheritance for component inside slots 2020-06-26 22:28:55 -04:00
Stanislav Lashmanov
6bc0e0a31a
feat(ssr): renderToStream (#1197) 2020-06-26 11:09:47 -04:00
underfin
1c4e1b6792
fix(runtime-core): should remove no longer present camelCase props (#1413)
fix #1412
2020-06-26 09:16:06 -04:00
Evan You
7ae70ea44c fix(transition): fix appear hooks handling 2020-06-25 16:02:28 -04:00
Evan You
e68209bfdb test: bump jest 2020-06-16 12:11:51 -04:00
underfin
6c8bfa1018
fix(runtime-core): fix parent el update on nested HOC self-update (#1360)
fix #1357
2020-06-15 16:46:29 -04:00
Evan You
be69beed5e fix(runtime-core): cloneVNode should preserve correct ctx instance when normalizing ref
fix #1311
2020-06-15 15:57:37 -04:00