Commit Graph

157 Commits

Author SHA1 Message Date
Evan You
ec4a4c1e06 refactor(runtime-core): refactor props resolution
Improve performance in optimized mode + tests
2020-04-06 17:37:47 -04:00
Evan You
899287ad35 feat(runtime-core): improve component public instance proxy inspection 2020-04-05 18:39:22 -04:00
Evan You
24e9efcc21 refactor(runtime-core): extract component emit related logic into dedicated file 2020-04-03 19:08:17 -04:00
Evan You
bf473a64ea feat(runtime-core): type and attr fallthrough support for emits option 2020-04-03 12:05:52 -04:00
Cédric Exbrayat
2103a485d7
refactor(runtime-core): remove unnecessary tracing check (#912)
The check for `config.performance` is already done inside `endMeasure` and is not done anywhere else `endMeasure` is called.
2020-04-03 09:19:53 -04:00
Evan You
e93e426bfa feat(runtime-core): config.performance tracing support 2020-04-01 21:36:50 -04:00
Evan You
573bcb2e11 refactor(runtime-core): remove the need for currentSuspense 2020-03-30 11:49:51 -04:00
Evan You
b8c1be18f3 refactor(types): use stricter settings
fix #847
2020-03-23 11:08:22 -04:00
Evan You
aa4ab39c1a refactor: separate vnode hooks and directive hooks 2020-03-18 12:30:26 -04:00
yang
703c9bc61f
types(ComponentInternalInstance): ComponentInternalInstance.type could reuse Component type (#824) 2020-03-16 18:41:11 -04:00
Evan You
8a58dce603 feat(runtime-core): set context for manual slot functions as well 2020-03-16 13:06:46 -04:00
Evan You
a3cc970030 feat(ssr/suspense): suspense hydration
In order to support hydration of async components, server-rendered
fragments must be explicitly marked with comment nodes.
2020-03-13 13:05:05 -04:00
Katashin
dd17fa1c90
feat(runtime-core): add special property to get class component options (#821) 2020-03-12 11:46:32 -04:00
Evan You
206640a2d8 fix(build): remove __RUNTIME_COMPILE__ flag
behavior should be consistent in all builds. fix #817
2020-03-11 16:39:26 -04:00
Evan You
47ead3b33a refactor(ssr): improve ssr async setup / suspense error handling 2020-03-10 16:52:31 -04:00
Evan You
3be3785f94 fix(ssr): fix ssr on-the-fly compilation + slot fallback branch helper injection 2020-03-06 14:52:15 -05:00
Evan You
e67f655b26 refactor(runtime-core): revert setup() result reactive conversion
BREAKING CHANGE: revert setup() result reactive conversion

    Revert 6b10f0c & a840e7d. The motivation of the original change was
    avoiding unnecessary deep conversions, but that can be achieved by
    explicitly marking values non-reactive via `markNonReactive`.

    Removing the reactive conversion behavior leads to an usability
    issue in that plain objects containing refs (which is what most
    composition functions will return), when exposed as a nested
    property from `setup()`, will not unwrap the refs in templates. This
    goes against the "no .value in template" intuition and the only
    workaround requires users to manually wrap it again with `reactive()`.

    So in this commit we are reverting to the previous behavior where
    objects returned from `setup()` are implicitly wrapped with
    `reactive()` for deep ref unwrapping.
2020-02-26 19:01:42 -05:00
Evan You
8383e5450e fix(runtime-core): ensure renderCache always exists 2020-02-18 14:43:12 -05:00
Evan You
d9d63f21b1 fix(reactivity): avoid cross-component dependency leaks in setup() 2020-02-17 23:14:07 -05:00
Evan You
57ee5df364 fix(types): app.component should accept defineComponent return type
fix #730
2020-02-15 21:04:29 -05:00
Evan You
6df2aca070 refactor(types): move shapeFlags to shared 2020-02-14 01:36:42 -05:00
Evan You
112d8f7d86 refactor: use explicit exports for runtime-core 2020-02-14 00:13:54 -05:00
Evan You
cfadb98011 fix(runtime-core): rework vnode hooks handling
- peroperly support directive on components (e.g. <foo v-show="x">)
- consistently invoke raw vnode hooks on component vnodes (fix #684)
2020-02-10 13:15:36 -05:00
Evan You
e308ad99e9 refactor: ensure setup context.emit always point to intenral emit 2020-02-09 21:47:16 -05:00
Evan You
0f67aa7da5 fix(runtime-core): fix ShapeFlags tree shaking 2020-02-07 17:18:12 -05:00
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