Commit Graph

182 Commits

Author SHA1 Message Date
Evan You
bc07e95ca8 fix(ssr): avoid hard-coded ssr checks in cjs builds 2020-01-29 09:49:17 -05:00
Evan You
6b10f0cd1d refactor: remove implicit reactive() call on renderContext
reference: https://github.com/vuejs/rfcs/issues/121

BREAKING CHANGE: object returned from `setup()` are no longer implicitly
passed to `reactive()`.

  The renderContext is the object returned by `setup()` (or a new object
  if no setup() is present). Before this change, it was implicitly passed
  to `reactive()` for ref unwrapping. But this has the side effect of
  unnecessary deep reactive conversion on properties that should not be
  made reactive (e.g. computed return values and injected non-reactive
  objects), and can lead to performance issues.

  This change removes the `reactive()` call and instead performs a
  shallow ref unwrapping at the render proxy level. The breaking part is
  when the user returns an object with a plain property from `setup()`,
  e.g. `return { count: 0 }`, this property will no longer trigger
  updates when mutated by a in-template event handler. Instead, explicit
  refs are required.

  This also means that any objects not explicitly made reactive in
  `setup()` will remain non-reactive. This can be desirable when
  exposing heavy external stateful objects on `this`.
2020-01-27 16:00:18 -05:00
Evan You
297282a812 perf(ssr): avoid unnecessary async overhead 2020-01-27 16:00:17 -05:00
Evan You
25a0d4a65f wip(ssr): reduce reactivity overhead during ssr 2020-01-27 16:00:17 -05:00
Evan You
cee36ad028 wip(ssr): render real components 2020-01-27 16:00:17 -05:00
Evan You
da25517377 wip(ssr): initial work on server-renderer 2020-01-27 16:00:17 -05:00
Evan You
2837ce8428 fix(v-model/emit): update:camelCase events should trigger kebab case equivalent
close #656
2020-01-26 14:14:03 -05:00
Evan You
e81c8a32c7 feat(runtime-core): emit now returns array of return values from all triggered handlers
close #635
2020-01-20 11:24:08 -05:00
Evan You
751d838fb9 fix(runtime-core): should not warn unused attrs when accessed via setup context
close #625
2020-01-16 17:45:08 -05:00
Evan You
c9b9ae3941 refactor: rename apiApp.ts -> apiCreateApp.ts 2019-12-22 11:27:40 -05:00
Chris Fritz
1c4cdd841d refactor(createComponent): rename to defineComponent (#549) 2019-12-22 10:58:12 -05:00
Evan You
d84cf3a538 feat(sfc): css modules support 2019-12-18 10:00:49 -05:00
Evan You
b2c2d0590e refactor: extract SFCInternalOptions inteface 2019-12-17 12:31:38 -05:00
Evan You
2b178981bc refactor: move isRuntimeCompiled flag into component.ts 2019-12-14 22:15:38 -05:00
Evan You
f77ae132e5 feat(hmr): reload and force slot update on re-render 2019-12-12 21:09:47 -05:00
Evan You
efe39db023 feat(runtime-core): hot module replacement 2019-12-12 21:09:47 -05:00
Evan You
4d730f464d refactor: move runtime compile error handling to vue 2019-12-11 10:25:34 -05:00
Evan You
c97d83aff2 refactor(runtime-core): tweak component proxy implementation 2019-12-10 11:14:29 -05:00
Evan You
57bbbb227c fix(core): propsProxy should not convert non-reactive nested values 2019-12-02 14:11:12 -05:00
Evan You
a6aa64b0cc refactor: tweaks 2019-11-22 23:32:53 -05:00
ztplz
8e8397374c chore: remove useless code (#447) 2019-11-14 11:23:04 -05:00
Evan You
acbbe3298c refactor: move codeframe to @vue/shared 2019-11-06 15:13:15 -05:00
Evan You
d9c6ff372c feat(core): allow passing explicit refs via props 2019-11-06 12:51:26 -05:00
Evan You
dfc7c0f12a refactor: adjust internal vnode types + more dts tests 2019-11-04 18:38:55 -05:00
Evan You
90b9884eb4 refactor: rename/re-organize files 2019-11-02 12:18:35 -04:00
Evan You
5cdeeaa702 types: fix types 2019-11-01 23:04:28 -04:00
Evan You
66ecd8b47f types: setup tests for built d.ts files 2019-11-01 22:54:01 -04:00
Evan You
c6cbca25fe feat(core): keep-alive 2019-10-29 22:28:38 -04:00
likui
8454e7e004 refactor: remove unnecessary variable (#401) 2019-10-28 10:13:26 -04:00
Evan You
8edfbf9df9 feat(core): adjust attrs fallthrough behavior 2019-10-25 12:12:17 -04: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
b5886189ba types: massive refactor 2019-10-22 11:53:32 -04:00
likui
f85ba092ce types: improve emit type (#345) 2019-10-21 14:04:42 -04:00
Jooger
67eb29f63b refactor(errorHandlling): handle array in callWithAsyncErrorHandling (#332) 2019-10-21 13:59:10 -04:00
Evan You
40ccbdeaac chore: remove refs from setupContext
explicit refs should be preferred
2019-10-21 10:36:38 -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
Dmitry Sharshakov
2238925fbe feat(core): validate directives names (#326) 2019-10-18 12:34:45 -04:00
Evan You
d179918001 perf: further tweak accessCache 2019-10-17 22:29:51 -04:00
Dmitry Sharshakov
7305f693b1 refactor(runtime-core): extract promise check into shared (#325) 2019-10-17 15:47:26 -04:00
Evan You
4771319a15 perf(core): cache property access types on renderProxy 2019-10-17 15:02:15 -04:00
Evan You
65a0207c7b test: test runtime compilation error warning 2019-10-15 22:19:19 -04:00
Jian Zhang
cf12d18b4b refactor(runtime-core): isBuiltInTag -> use makeMap instead of Set (#307) 2019-10-15 22:18:55 -04:00
月迷津渡
f71bf2f1d3 feat: add isCustomElement option (#299) 2019-10-15 17:30:47 -04:00
月迷津渡
66023a8886 feat: runtime component name validation (#217) 2019-10-14 15:36:29 -04:00
Evan You
82b5978e9c build: further shave off runtime compile only code 2019-10-14 01:08:00 -04:00
likui
46e64b257c feat(compiler-core/runtime-core): show codeframe in runtime compile errors (#220) 2019-10-12 19:49:23 -04:00
Evan You
95d7e1f471 feat: log on the fly template compilation error 2019-10-11 11:16:20 -04:00
terencez
7963c01a67 types(runtime-core): simplify types in createComponentInstance() (#170) 2019-10-09 12:17:42 -04:00
Evan You
8da5b007b1 types: improve typing 2019-10-08 12:43:13 -04:00
月迷津渡
9d6783053c types: simplify types (#104) 2019-10-05 10:09:34 -04:00
Evan You
d87255ce46 fix(options): data options should preserve original object if possible 2019-10-02 10:03:43 -04:00
Evan You
8a923f6a52 refactor: move compile into compiler-core 2019-09-20 12:16:19 -04:00
Evan You
3ddd121b19 feat: on-the-fly template compilation 2019-09-20 00:24:16 -04:00
Evan You
b30b17d22d test: test nested suspense & nested async deps 2019-09-11 23:44:37 -04:00
Evan You
356a01780b wip: watcher callback handling inside suspense 2019-09-11 11:10:13 -04:00
Evan You
51914c76e8 wip: do not fire lifecycle hooks when already unmounted 2019-09-11 11:10:13 -04:00
Evan You
d5e9682040 wip: suspense feature flag 2019-09-11 11:10:13 -04:00
Evan You
02bb156314 wip: somewhat working suspense 2019-09-11 11:10:13 -04:00
Evan You
360f3b4f37 types: improve type exports 2019-09-06 12:58:31 -04:00
Evan You
d87bed0138 refactor: split componentRenderUtils 2019-09-06 11:25:11 -04:00
Evan You
0f25c29119 refactor: reorganize component related code and types 2019-09-06 11:19:22 -04:00
Evan You
7eed0df3c2 wip: $data should only expose properties from data() 2019-09-05 20:36:35 -04:00
Evan You
94a05561f8 feat: fix all cases for h and options type inference 2019-09-05 18:48:49 -04:00
Evan You
9b90e673e8 wip: improve options typing 2019-09-05 16:09:30 -04:00
Evan You
369b9eb583 types: props validation for h 2019-09-05 11:11:33 -04:00
Evan You
13298bc4fa test: test for options API 2019-09-04 18:16:11 -04:00
Evan You
02de984f1f feat: mixins/extends/assets options 2019-09-04 11:37:00 -04:00
Evan You
a6616e4210 feat: 2.x options support 2019-09-03 22:25:38 -04:00
Evan You
acda3cf2d9 chore: fix type 2019-09-03 18:24:32 -04:00
Evan You
98d1406214 test: test for app-level APIs 2019-09-03 18:11:04 -04:00
Evan You
c5ec29ff9b wip: render() should receive no args, expose props on renderContext as readonly 2019-09-03 15:27:59 -04:00
Evan You
015d5dd0f1 feat: asset resolution 2019-09-02 16:43:26 -04:00
Evan You
32713f8fce feat: createApp / appContext 2019-09-02 16:09:34 -04:00
Evan You
a3b0f2bd1c feat: applyDirectives 2019-08-31 16:36:36 -04:00
Evan You
6801885f57 test: more coverage for error handling 2019-08-30 16:20:32 -04:00
Evan You
be28f976af test: tests for error handling 2019-08-30 16:08:10 -04:00
Evan You
09593c94c3 feat: error handling in scheduler 2019-08-30 15:15:23 -04:00
Evan You
966d7b5487 feat: error handling for setup / render / watch / event handlers 2019-08-30 15:05:39 -04:00
Evan You
3d681f8bcd feat: error handling for lifecycle hooks 2019-08-30 12:16:09 -04:00
Evan You
b40b7356ef test: tests for lifecycle api 2019-08-28 12:13:36 -04:00
Evan You
5a754aac81 test: test for setup() 2019-08-26 18:08:56 -04:00
Evan You
589d3c2feb refactor: immutable -> readonly 2019-08-23 09:38:32 -04:00
Evan You
daf67397ae wip: pass attrs fallthrough tests 2019-08-22 22:07:51 -04:00
Evan You
f3e9848bb2 refactor: use const enums for flags 2019-08-22 11:12:37 -04:00
Evan You
8a01c8e549 types: fix createComponent spec 2019-08-21 17:10:37 -04:00
Evan You
b5384006d2 wip: update runtime-test 2019-08-21 17:05:14 -04:00
Evan You
8d99ab1ff8 chore: allow custom assignment to this 2019-08-21 09:50:20 -04:00
Evan You
aacad85058 test: fix reactivity tests 2019-08-20 09:58:10 -04:00
Evan You
e1e4a3854c wip: update runtime core to updated reactivity api names 2019-08-16 10:02:53 -04:00
Evan You
5aa42f137f types: use unknown 2019-08-13 11:18:23 -04:00
Evan You
9c0f820a8e wip: expose getCurrentInstance() 2019-06-20 15:25:10 +08:00
Evan You
117630fb92 perf: improve inject performance 2019-06-19 22:48:22 +08:00
Evan You
0952d4cf51 wip: provide/inject 2019-06-19 17:31:49 +08:00
Evan You
976844790e wip: $state -> $data 2019-06-19 17:08:42 +08:00
Evan You
5228f0343b wip: setup context + emit 2019-06-19 16:43:34 +08:00
Evan You
08806073a1 chore: comments 2019-06-13 10:25:24 +08:00
Evan You
2230917ab4 wip: types 2019-06-12 16:22:52 +08:00
Evan You
fce6a8fa51 wip: support returning render fn from setup() + improve createComponent type inference 2019-06-12 15:43:19 +08:00
Evan You
471899af8b refactor: rename reactivity package name and APIs 2019-06-11 23:50:28 +08:00
Evan You
7fe82b1199 wip: svg & parent chain 2019-06-03 09:43:28 +08:00