Commit Graph

82 Commits

Author SHA1 Message Date
Evan You cda50ea788 refactor(runtime-core): move updateCompnent into separate function 2020-04-10 10:19:26 -04:00
Evan You cb504c287f refactor(runtime-core): refactor slots resolution
Get rid of need for setup proxy in production mode and improve console
inspection in dev mode
2020-04-06 21:06:53 -04:00
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 f42d11e8e1 fix(v-model): handle dynamic assigners and array assigners
close #923
2020-04-04 20:51:42 -04:00
Evan You bf473a64ea feat(runtime-core): type and attr fallthrough support for emits option 2020-04-03 12:05:52 -04:00
Evan You eee5095692 refactor: rename `<portal>` to `<teleport>`
BREAKING CHANGE: `<portal>` has been renamed to `<teleport>`.

    `target` prop is also renmaed to `to`, so the new usage will be:

    ```html
    <Teleport to="#modal-layer" :disabled="isMobile">
      <div class="modal">
        hello
      </div>
    </Teleport>
    ```

    The primary reason for the renaming is to avoid potential naming
    conflict with [native portals](https://wicg.github.io/portals/).
2020-04-01 21:55:19 -04:00
Evan You e93e426bfa feat(runtime-core): config.performance tracing support 2020-04-01 21:36:50 -04:00
Evan You 449ab039fe feat(templateRef): should work with direct reactive property
close #901
2020-03-31 10:35:49 -04:00
Evan You 55b364decc feat(templateRef): support template ref for all vnode types 2020-03-31 10:30:12 -04:00
Evan You 573bcb2e11 refactor(runtime-core): remove the need for currentSuspense 2020-03-30 11:49:51 -04:00
Evan You 8ce3da0104 feat(portal): support disabled prop 2020-03-30 11:24:28 -04:00
Evan You aafb880a0a feat(portal): support multiple portal appending to same target 2020-03-27 18:42:57 -04:00
Evan You b1d0b046af fix(runtome-dom): properly support creating customized built-in element 2020-03-27 12:39:00 -04:00
Evan You 16cd8eee78 fix(portal): portal should always remove its children when unmounted 2020-03-25 17:27:55 -04:00
Evan You 123738727a fix(keep-alive): should update re-activated component with latest props 2020-03-24 10:28:00 -04:00
Evan You 4c1a193617 fix: do not drop SFC runtime behavior code in global builds
fix #873
2020-03-23 15:10:35 -04:00
Evan You b8c1be18f3 refactor(types): use stricter settings
fix #847
2020-03-23 11:08:22 -04:00
Evan You ba9a91c48c refactor: remove null comparisons 2020-03-18 18:14:51 -04:00
Evan You 811f28a7d1 test(runtime-core): tests for vnode hooks 2020-03-18 16:35:04 -04:00
Evan You aa4ab39c1a refactor: separate vnode hooks and directive hooks 2020-03-18 12:30:26 -04:00
Evan You 6679799540 refactor: refactor vnode hooks invocation 2020-03-18 12:30:26 -04:00
Evan You 9ad65b1653 refactor(template-ref): improve template ref handling
close #836, close #839
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
Evan You ca5f39ee35 refactor(runtime-core): adjust patchProp value arguments order
BREAKING CHANGE: `RendererOptions.patchProp` arguments order has changed

  The `prevValue` and `nextValue` position has been swapped to keep it
  consistent with other functions in the renderer implementation. This
  only affects custom renderers using the `createRenderer` API.
2020-03-09 16:15:49 -04:00
hareku cd34603864
fix(runtime-core): pass prev value to hostPatchProp (#809)
fix #808
2020-03-09 16:08:10 -04:00
Evan You 11d2fb2594 refactor(fragments): remove visible anchors for fragments 2020-02-26 16:32:06 -05:00
Evan You 3eab143843 fix(template-ref): fix string template refs inside slots 2020-02-25 18:29:51 -05:00
djy0 c11905fe36
chore: fix typo (#764) [ci skip] 2020-02-24 18:01:26 +01:00
Evan You 9d2ac6675a refactor: make portal tree-shakeable 2020-02-15 17:44:37 -05:00
Evan You 96605b79a3 types: avoid duplicate type declarations for renderer closure functions 2020-02-14 16:25:41 -05:00
Evan You 80904e92b8 types: cleanup renderer & hydration typing 2020-02-14 12:33:32 -05:00
Evan You 629ee75588 perf: prevent renderer hot functions being inlined by minifiers
Terser will aggressively inline hot functions in renderer.ts in order
to reduce "function" declarations, but the inlining leads to performance
overhead (small, but noticeable in benchmarks).

Since we cannot control user's minifier options, we have to avoid the
deopt in the source code by using arrow functions in hot paths.
2020-02-14 03:27:27 -05:00
Evan You 6df2aca070 refactor(types): move shapeFlags to shared 2020-02-14 01:36:42 -05:00
Evan You 167f8241bd refactor(ssr): make hydration logic tree-shakeable 2020-02-14 01:30:08 -05:00
Evan You 42d80b5888 wip(ssr): component hydration 2020-02-13 23:31:03 -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 8a87074df0 fix(runtime-core/scheduler): avoid duplicate updates of child component 2020-02-10 13:09:15 -05:00
Evan You 778f3a5e88 fix(runtime-core): should not return early on text patchFlag
fix vnode updated hook on elements with dynamic text children
2020-02-10 12:06:36 -05:00
Evan You 6b1ce00621 wip(ssr): renderer support for optimized and manual slots 2020-01-28 22:58:02 -05:00
Evan You 6f43c4b516 wip(ssr): vdom serialization 2020-01-28 18:48:27 -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 c07751fd36 refactor: adjust `createApp` related API signatures
BREAKING CHANGE: `createApp` API has been adjusted.

  - `createApp()` now accepts the root component, and optionally a props
  object to pass to the root component.
  - `app.mount()` now accepts a single argument (the root container)
  - `app.unmount()` no longer requires arguments.

  New behavior looks like the following:

  ``` js
  const app = createApp(RootComponent)
  app.mount('#app')
  app.unmount()
  ```
2020-01-27 16:00:17 -05:00
Evan You 4f06eebc1c fix(dom): fix <svg> and <foreignObject> mount and updates 2020-01-21 11:32:33 -05:00
Evan You 035b6560f7 fix(runtime-core): isSVG check should also apply for patch branch
fix #639
2020-01-20 11:55:18 -05:00
Evan You c35fea3d60 fix(runtime-core): condition for parent node check should be any different nodes
fix #622
2020-01-16 16:21:37 -05:00
Evan You 2e9726e6a2 fix(runtime-core/renderer): fix v-if toggle inside blocks
Should check both branches for parent container access.
Fix #604. Close #607.
2020-01-13 17:31:22 -05:00
Evan You 7d436ab59a fix: mounting new children 2019-12-22 16:24:24 -05:00