Commit Graph

924 Commits

Author SHA1 Message Date
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
ebc1ca8eff fix(suspense): clear effects on suspense resolve 2020-03-18 15:40:20 -04:00
Evan You
be91b43564 types: improve directive hook argument types 2020-03-18 12:30:26 -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
3b282e7e3c fix(runtime-core): fix boolean props validation 2020-03-17 10:35:32 -04:00
Evan You
5282ff0edb release: v3.0.0-alpha.9 2020-03-16 18:56:44 -04:00
yang
3d38e6faf3
refactor(componentProps): extract validate prop name logic (#825) 2020-03-16 18:45:08 -04:00
yang
703c9bc61f
types(ComponentInternalInstance): ComponentInternalInstance.type could reuse Component type (#824) 2020-03-16 18:41:11 -04:00
Evan You
c450ede12d feat(ssr): support getSSRProps for vnode directives 2020-03-16 18:36:19 -04:00
Evan You
38f0269765 refactor: simplify suspense ssr + adjust behavior 2020-03-16 15:38:35 -04:00
Evan You
eb5b32fead test: fix resolveAssets test + test resolveDynamicComponent in slots 2020-03-16 13:17:57 -04:00
Evan You
4dc8ffc378 fix: simplify and use correct ctx in withCtx 2020-03-16 13:06:46 -04:00
Evan You
23701666cb Revert "refactor(directives): remove binding.instance"
This reverts commit 52cc7e8231.
2020-03-16 13:06:46 -04:00
Evan You
19228a469a refactor: simplify resolveDyanmicComponent 2020-03-16 13:06:46 -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
8a58dce603 feat(runtime-core): set context for manual slot functions as well 2020-03-16 13:06:46 -04:00
Evan You
ecd7ce60d5 feat(compiler-core): wrap slot functions with render context 2020-03-16 13:06:46 -04:00
djy0
bcb750bb3a
test(runtime-core): fix test for vnode key (#846) 2020-03-16 13:06:03 -04:00
sqal
d9dd1d8a0a
fix(runtime-core): pass instance proxy as data() argument (#828)
Match current behaviour of vue 2
2020-03-16 10:28:17 -04:00
jods
c7ae269972
fix(runtime-core): empty boolean props (#844)
close #843
2020-03-16 10:19:06 -04:00
likui
760c3e0fd6
feat(types): export ErrorTypes (#840) 2020-03-15 11:40:58 -04:00
djy0
58bc51991e
chore(runtime-core): fix typo in warning (#841) [ci skip] 2020-03-15 11:29:21 -04:00
Evan You
60ed4e7e08 feat(ssr): improve fragment mismatch handling 2020-03-13 18:02:53 -04:00
Evan You
eb1d538ea2 test(ssr): hydration suspense tests 2020-03-13 13:05:05 -04:00
Evan You
1f9c9c14ae chore: move hydration tests 2020-03-13 13:05:05 -04:00
Evan You
a05d41c940 refactor(ssr): adjust ssr fragment anchor content 2020-03-13 13:05:05 -04:00
Evan You
cad5bcce40 feat(ssr): hide comment anchors during hydration in dev mode 2020-03-13 13:05:05 -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
bb7fa3dabc feat(runtime-core): implement RFC-0020
BREAKING CHANGE: data no longer supports object format (per RFC-0020)
2020-03-12 16:13:12 -04:00
Katashin
dd17fa1c90
feat(runtime-core): add special property to get class component options (#821) 2020-03-12 11:46:32 -04:00
hareku
1e9d1319c3
fix(types): app.component should accept defineComponent return type (#822)
fix #730
2020-03-12 10:19:30 -04:00
Cédric Exbrayat
28a9beed16
fix(runtime-core): always set invalid vnode type (#820)
Currently, when a component used is not properly registered, we have a warning and the vnode type is set to a Comment type in DEV mode. But in prod mode, we have no default value, making such an application broken and throw a strange error (`can not read _isSuspense of undefined`).

This commit avoids such an error in prod mode (as it is currently the case in Vue 2.x).
2020-03-11 16:44:14 -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
Cédric Exbrayat
f59779706b
refactor(Suspense): remove unnecessary casts (#819) 2020-03-11 11:17:10 -04:00
Evan You
47ead3b33a refactor(ssr): improve ssr async setup / suspense error handling 2020-03-10 16:52:31 -04:00
Dmitry Sharshakov
589aeb402c
feat(server-renderer): render suspense in vnode mode (#727) 2020-03-09 18:20:30 -04:00
hareku
e12ddd96ba
test(runtime-core/renderer): tests for rendering elements (#699) 2020-03-09 17:08: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
djy0
54a0e93c27
fix(runtime-core): should allow empty string and 0 as valid vnode key (#807) 2020-03-09 16:03:57 -04:00
hareku
257727569a
types(runtime-core): update error type to unknown (#798) 2020-03-09 15:58:52 -04:00
Evan You
c75388d538 release: v3.0.0-alpha.8 2020-03-06 15:58:40 -05:00
Evan You
dd2d25fee1 test(ssr): test for hydration mismatch handling 2020-03-06 15:39:54 -05: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
08bba093af test(ssr): more hydration tests 2020-03-05 10:29:50 -06:00
Evan You
fb4856b363 test(ssr): hydratioon tests (wip) 2020-03-04 17:06:50 -06:00
Evan You
91269da52c feat(ssr): hydration mismatch handling 2020-03-03 15:12:38 -06:00
Evan You
7971b0468c fix(directives): ignore invalid directive hooks
fix #795
2020-03-03 12:26:48 -06:00
火石
27afbaf02d
chore: fix componentRenderUtils.ts comment typo (#790) [ci skip] 2020-03-03 10:05:07 -06:00
Evan You
bcb2a9b4a6 build: make @vue/shared public
This avoids it being inlined multiple times in esm bundler builds
2020-02-29 22:04:42 -05:00
Evan You
e1660f4338 refactor(runtime-core): adjust attr fallthrough behavior
BREAKING CHANGE: adjust attr fallthrough behavior

    Updated per pending RFC https://github.com/vuejs/rfcs/pull/137

    - Implicit fallthrough now by default only applies for a whitelist
      of attributes (class, style, event listeners, a11y attributes, and
      data attributes).

    - Fallthrough is now applied regardless of whether the component has
      explicitly declared props. (close #749)
2020-02-28 17:53:26 -05:00
Evan You
6810d1402e fix(runtime-core): ensure inhertied attrs update on optimized child root
fix #677, close #784
2020-02-27 21:51:57 -05:00
Evan You
4809325c07 refactor(hydration): move fragment to seaprate function + skip normalization in optimized mode 2020-02-27 11:26:39 -05:00
Evan You
3357ff438c fix(slots): fix conditional slot
fix #787
2020-02-26 21:43:27 -05:00
Evan You
5d952cc051 test: fix options usage of reactive 2020-02-26 21:29:41 -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
11d2fb2594 refactor(fragments): remove visible anchors for fragments 2020-02-26 16:32:06 -05:00
Evan You
439752822c fix(portal): fix portal placeholder text 2020-02-26 16:07:00 -05:00
Evan You
312513d255 release: v3.0.0-alpha.7 2020-02-26 14:36:38 -05:00
Evan You
e42d6b0712 refactor: use consistent name for watch invalidation register function 2020-02-26 10:20:30 -05:00
djy0
04f83fa681
fix(runtime-core): set appContext.provides to Object.create(null) (#781) 2020-02-26 10:20:10 -05:00
Evan You
711d16cc65 refactor: remove old watch signature support 2020-02-25 19:39:49 -05:00
Evan You
52cc7e8231 refactor(directives): remove binding.instance
BREAKING CHANGE: custom directive bindings no longer expose instance

    This is a rarely used property that creates extra complexity in
    ensuring it points to the correct instance. From a design
    perspective, a custom directive should be scoped to the element and
    data it is bound to and should not have access to the entire
    instance in the first place.
2020-02-25 19:35:48 -05:00
Evan You
3eab143843 fix(template-ref): fix string template refs inside slots 2020-02-25 18:29:51 -05:00
ysj16
8cb0b83088
fix(renderSlot): set slot render as a STABLE_FRAGMENT (#776)
fix #766
2020-02-25 16:41:44 +01:00
Evan You
4a5b91bd1f fix(runtime-core): fix slot fallback + slots typing
fix #773
2020-02-25 09:41:07 -05:00
djy0
19a799c28b
fix(runtime-core): make watchEffect ignore deep option (#765) 2020-02-24 18:03:02 +01:00
djy0
c11905fe36
chore: fix typo (#764) [ci skip] 2020-02-24 18:01:26 +01:00
Evan You
9ab22c7ae6 release: v3.0.0-alpha.6 2020-02-22 08:25:32 +01:00
Evan You
99a2e18c97 feat(runtime-core): add watchEffect API
BREAKING CHANGE: replae `watch(fn, options?)` with `watchEffect`

    The `watch(fn, options?)` signature has been replaced by the new
    `watchEffect` API, which has the same usage and behavior. `watch`
    now only supports the `watch(source, cb, options?)` signautre.
2020-02-22 08:19:10 +01:00
Evan You
e9024bf1b7 feat(reactivity): expose unref and shallowRef 2020-02-22 04:39:32 +01:00
Evan You
0c67201942 chore: fix test type 2020-02-22 03:54:20 +01:00
hareku
9547c2b93d
fix(sfc): inherit parent scopeId on child rooot (#756) 2020-02-21 14:44:13 +01:00
Evan You
a840e7ddf0 fix(types): update setup binding unwrap types for 6b10f0c
close #738
2020-02-19 18:29:18 +01:00
Evan You
478b4cfb2c release: v3.0.0-alpha.5 2020-02-18 15:00:55 -05:00
Evan You
8383e5450e fix(runtime-core): ensure renderCache always exists 2020-02-18 14:43:12 -05:00
Evan You
583f9468fa refactor: extract remove util 2020-02-18 13:52:59 -05:00
Evan You
fd031490fb feat(ssr): useSSRContext 2020-02-18 13:26:15 -05:00
Evan You
86464e8c04 refactor: only run useCssModule code in non-global builds 2020-02-18 13:23:30 -05:00
Evan You
2fb7a63943 fix(computed): support arrow function usage for computed option
fix #733
2020-02-17 23:22:25 -05:00
Evan You
9571ede84b refactor(watch): adjsut watch API behavior
BREAKING CHANGE: `watch` behavior has been adjusted.

    - When using the `watch(source, callback, options?)` signature, the
      callback now fires lazily by default (consistent with 2.x
      behavior).

      Note that the `watch(effect, options?)` signature is still eager,
      since it must invoke the `effect` immediately to collect
      dependencies.

    - The `lazy` option has been replaced by the opposite `immediate`
      option, which defaults to `false`. (It's ignored when using the
      effect signature)

    - Due to the above changes, the `watch` option in Options API now
      behaves exactly the same as 2.x.

    - When using the effect signature or `{ immediate: true }`, the
      intital execution is now performed synchronously instead of
      deferred until the component is mounted. This is necessary for
      certain use cases to work properly with `async setup()` and
      Suspense.

      The side effect of this is the immediate watcher invocation will
      no longer have access to the mounted DOM. However, the watcher can
      be initiated inside `onMounted` to retain previous behavior.
2020-02-17 23:16:58 -05:00
Evan You
d9d63f21b1 fix(reactivity): avoid cross-component dependency leaks in setup() 2020-02-17 23:14:07 -05:00
Evan You
0c1fe72dcf build: make watch tree-shakable in lean build 2020-02-17 11:02:15 -05:00
Evan You
77103e1fd7 types: fix tsx dts tests 2020-02-15 21:48:45 -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
9d2ac6675a refactor: make portal tree-shakeable 2020-02-15 17:44:37 -05:00
夜宴
8a4412077c
chore: remove redundant Non-Null Assertion (#728) 2020-02-15 11:33:22 -05:00
Evan You
70dc3e3ae7 feat(ssr): support portal hydration 2020-02-14 21:04:08 -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
112d8f7d86 refactor: use explicit exports for runtime-core 2020-02-14 00:13:54 -05:00
Evan You
42d80b5888 wip(ssr): component hydration 2020-02-13 23:31:03 -05:00
Evan You
9aaef60ad2 wip(ssr): adjust event hydration flag 2020-02-13 18:28:40 -05:00
Evan You
6b505dcd23 wip(ssr): basic element hydration 2020-02-13 17:47:00 -05:00
Evan You
35d91f4e18 fix(runtime-core): handle component updates with only class/style bindings 2020-02-13 17:27:52 -05:00
Evan You
c6a9787941 fix(types): ensure correct oldValue typing based on lazy option
close #719
2020-02-13 12:09:13 -05:00
Evan You
1389d7b88c refactor(compiler-core): use more concise marker for compiled slots 2020-02-12 13:45:35 -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
Yang Mingshan
fe9da2d0e4
fix(runtime-core/scheduler): invalidate job (#717) 2020-02-11 07:30:25 -05:00
Evan You
12fcf9ab95 fix(compiler): fix v-for fragment openBlock argument 2020-02-10 18:19:49 -05:00
Evan You
47e984d31f refactor(compiler): provide _ctx and _cache via arguments 2020-02-10 17:29:12 -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
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
e308ad99e9 refactor: ensure setup context.emit always point to intenral emit 2020-02-09 21:47:16 -05:00
Evan You
4bc4cb970f fix: remove effect from public API
close #712
2020-02-09 21:43:54 -05:00
jods
21944c4a42
feat(runtime-core/reactivity): expose shallowReactive (#711) 2020-02-09 21:42:34 -05:00
Evan You
0f67aa7da5 fix(runtime-core): fix ShapeFlags tree shaking 2020-02-07 17:18:12 -05:00
Evan You
5b43764eac fix(runtime-core): fix keep-alive tree-shaking 2020-02-07 17:00:39 -05:00
Evan You
b7a74d0439 wip(ssr): ssr slot vnode fallback 2020-02-07 01:06:51 -05:00
Evan You
ee5ed73361 wip(ssr): basic components 2020-02-05 23:07:23 -05:00
Eduardo San Martin Morote
5742a0b826
fix(runtime-core/watch): trigger watcher with undefined as initial value (#687)
Fix #683
2020-02-04 09:59:04 -05:00
Evan You
bd9b690a51 chore: rmeove unused export 2020-01-31 11:07:10 -05:00
Evan You
c02e7bc7d6 wip(ssr): should apply app context when rendering app instance 2020-01-30 12:20:23 -05:00
Evan You
eaf414f063 test(ssr): test rendering vnode elements 2020-01-29 17:36:06 -05:00
Evan You
8cdaf28515 test(ssr): test for rendering components 2020-01-29 16:46:18 -05:00
Evan You
6e06810add test(ssr): tests for utils and props rendering 2020-01-29 15:10:45 -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
6b1ce00621 wip(ssr): renderer support for optimized and manual slots 2020-01-28 22:58:02 -05:00
Evan You
a7b0954f14 wip(ssr): move ssr only utils to conditional export 2020-01-28 22:14:43 -05:00
Evan You
6f43c4b516 wip(ssr): vdom serialization 2020-01-28 18:48:27 -05:00
Evan You
27fbfbdb8b fix(runtime-core): render context set should not unwrap reactive values 2020-01-27 18:05:30 -05:00
Evan You
012bc5df9d wip(ssr): restructure 2020-01-27 17:23:42 -05:00
Evan You
d293876c34 release: v3.0.0-alpha.4 2020-01-27 16:20:00 -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
2884831065 fix(runtime-core): instance should not expose non-declared props 2020-01-27 16:00:18 -05:00
Evan You
066ba82c7f wip(ssr): escape helpers 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
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
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
b41677bf42 release: v3.0.0-alpha.3 2020-01-22 11:10:30 -05:00
likui
ec63623fe8 fix: Suspense should include into dynamic children (#653)
fix #649
2020-01-22 10:45:27 -05:00
Evan You
2569890e31 refactor: move mockWarn utility to @vue/shared
close #652
2020-01-22 09:29:45 -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
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
Rustin
787ac5f74e test(runtime-core): modify test case to set different value (#620) 2020-01-20 09:43:58 -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
c35fea3d60 fix(runtime-core): condition for parent node check should be any different nodes
fix #622
2020-01-16 16:21:37 -05:00
likui
04ac6c467a feat(runtime-core): support app.unmount(container) (#601)
close #593
2020-01-16 12:23:47 -05:00
Sören Schwert
1081ef8089 chore: fix error reporting URL to point to vue-next (#624) [ci skip] 2020-01-15 21:50:06 -05:00
Evan You
9f65d811af release: v3.0.0-alpha.2 2020-01-13 17:44:30 -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
Cédric Exbrayat
74baea108a fix(types): components options should accept components defined with defineComponent (#602) 2020-01-13 17:12:45 -05:00
Yang Mingshan
f465199946 types: fix setup this type (#605) 2020-01-10 11:46:34 -05:00
Kael
8f616a89c5 fix(runtime-core): allow classes to be passed as plugins (#588) 2020-01-08 12:40:24 -05:00
Yang Mingshan
453e6889da fix(watch): remove recorded effect on manual stop (#590) 2020-01-08 12:06:16 -05:00
Evan You
bb6a346996 fix(runtime-core): should preserve props casing when component has no declared props
close #583
2020-01-06 15:05:57 -05:00
Evan You
84dc5a6862 fix(runtime-core/vnode): should not render boolean values in vnode children (close #574) 2020-01-06 11:57:19 -05:00
pikax
9edc4fa1fe types: fix failed typings? 2020-01-04 14:24:34 +00:00
Evan You
1bb1271b5e release: v3.0.0-alpha.1 2020-01-02 18:25:17 -05:00
Evan You
bfb0ad5a5e types: refactor watcher types naming 2019-12-30 11:30:12 -05:00
likui
a7ef59c4c3 test(vnode): add test for dynamic children (#563) 2019-12-30 11:25:44 -05:00
Yang Mingshan
3980ad65de types: exports watch api types (#562) 2019-12-30 11:19:57 -05:00
Evan You
7df5e70c83 types: accept defineComponent return types in app.mount 2019-12-24 11:04:44 -05:00
宋铄运
4d20981eb0 fix(runtime-core): pass options to plugins (#561) 2019-12-24 10:33:47 -05:00
Evan You
7d436ab59a fix: mounting new children 2019-12-22 16:24:24 -05:00
Evan You
2fdb499bd9 fix(fragment): perform direct remove when removing fragments
This avoids trying to grab .el from hoisted child nodes (which can
be created by another instance), and also skips transition check
since fragment children cannot have transitions.
2019-12-22 16:15:16 -05:00
Evan You
47a6a84631 fix(core): clone mounted hoisted vnodes on patch
...since they may need to be checked as fragment child
2019-12-22 13:31:13 -05:00
Evan You
eda495efd8 feat(hmr): root instance reload 2019-12-22 12:25:04 -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
d6da48a33f perf: optimize public properties access on componentProxy 2019-12-19 14:19:58 -05:00
Evan You
bdbfead1e0 chore: adjust package.json 2019-12-19 14:19:58 -05:00
Evan You
9f52dce0d5 fix(renderer): should also use latest parent node when patching block child components 2019-12-18 17:09:28 -05:00
Evan You
3deb20df63 feat(watch): warn when using lazy with simple callback 2019-12-18 11:54:12 -05:00
Yang Mingshan
c2c9c2b57e fix(watch): ignore lazy option in simple watch (#546)
* fix(watch): ignore lazy option in simple watch

* test: ignore lazy option in simple watch
2019-12-18 11:46:59 -05:00
Evan You
d84cf3a538 feat(sfc): css modules support 2019-12-18 10:00:49 -05:00
Evan You
b689ca6e85 test: test scopeId support 2019-12-17 12:31:38 -05:00
Evan You
8ea2101553 test: test hot module replacement 2019-12-17 12:31:38 -05:00
Evan You
f194aa0eea feat(sfc): ::slotted selector support 2019-12-17 12:31:38 -05:00
Evan You
69c9dbc825 feat(sfc): scopeId runtime support 2019-12-17 12:31:38 -05:00
Evan You
b2c2d0590e refactor: extract SFCInternalOptions inteface 2019-12-17 12:31:38 -05:00
Evan You
35858cec8c build: adjust global names + allow inline overrides of build flags 2019-12-15 15:37:43 -05:00
Evan You
2b178981bc refactor: move isRuntimeCompiled flag into component.ts 2019-12-14 22:15:38 -05:00
Evan You
d6acb9c073 fix(hmr): force full diff on HMR 2019-12-13 17:57:21 -05:00
Evan You
fa5390fb6f fix(fragment): properly remove compiler generated fragments 2019-12-13 10:31:40 -05:00
Cr
6797e35703 chore: fix typos (#541) 2019-12-13 11:49:01 +01:00
Evan You
7431c2e46e fix(runtime-core): ensure $forceUpdate behavior consistency with 2.x 2019-12-12 22:12:45 -05:00
Evan You
2c3c65772b perf: optimize props resolution
Store the keys for props that need default or boolean casting
during normalization, so that later we only need to iterate
through this array instead of the entire props object.
2019-12-12 22:07:48 -05:00
Evan You
8ffd79c754 fix(compiler-core): handle template root and template v-if as stable fragments 2019-12-12 21:09:47 -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
ef50c333ce fix(core): generate fragment root with patchFlag + optimize fragment w/ patchFlag 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
3116b5d6c3 fix(runtime-core): initialize renderCache if not present 2019-12-12 21:09:47 -05:00
Evan You
5ecc77df5a chore: fix missed save 2019-12-11 10:39:29 -05:00
Evan You
4d730f464d refactor: move runtime compile error handling to vue 2019-12-11 10:25:34 -05:00
Evan You
d3d4fe84cd fix(vue): properly cache runtime compilation 2019-12-11 09:46:42 -05:00
Evan You
136ab753b3 build: adjust esm formats 2019-12-10 22:14:02 -05:00
Evan You
8ed04ed503 build: release script 2019-12-10 21:29:52 -05:00
Evan You
cd5ba7cfcc build: remove lerna 2019-12-10 18:24:59 -05:00
Evan You
c97d83aff2 refactor(runtime-core): tweak component proxy implementation 2019-12-10 11:14:29 -05:00
GCA
2383b45e32 chore: fix typo (#530) [ci skip] 2019-12-09 14:23:57 -05:00
Evan You
e7e1314ccc test: fix warning 2019-12-09 14:23:01 -05:00
Evan You
c53fae987d feat(runtime-core): warn incorrect root props value (close #375) 2019-12-09 14:06:31 -05:00
Evan You
83428fb844 chore: update readme 2019-12-09 14:06:31 -05:00
meteorlxy
f3007a6b4f fix(core): use String to convert primitive types (#518) 2019-12-04 18:28:52 +01:00
Evan You
89a187b895 refactor(reactivity): separate track and trigger operation types 2019-12-03 11:30:24 -05:00
Evan You
a58da63f16 fix(core): should not warn extraneous props when root is toggled 2019-12-02 15:17:30 -05:00
Evan You
57bbbb227c fix(core): propsProxy should not convert non-reactive nested values 2019-12-02 14:11:12 -05:00
hujiulong
08a1de5e29 chore: remove jsx.d.ts from package.files (#512) 2019-12-02 09:40:42 -05:00
Evan You
24f6d63c6a fix(core): use correct parent for v-if toggle 2019-12-01 23:42:14 -05:00
Evan You
f5f2dca132 feat(core): support recursively resolving self component by name 2019-12-01 23:17:00 -05:00
JiZhi
ec2feeafad chore: typo (#488) [ci skip] 2019-12-01 12:03:26 -05:00
Evan You
800b0f0e7a feat(transition): TransitionGroup 2019-11-28 18:41:01 -05:00
Evan You
a758540b6a test(transition): test usage with KeepAlive 2019-11-28 12:16:42 -05:00
fisker Cheung
b87c05159b style(runtime-core): remove a unnecessary continue (#505) 2019-11-28 10:45:48 -05:00
fisker Cheung
92b02dc48f chore: comment typo (#506) 2019-11-28 10:01:53 +01:00
Evan You
32602ccee1 test(transition): in-out, appear & persisted 2019-11-27 17:54:41 -05:00
Evan You
7aac3418c0 test(transition): test for mode: out-in 2019-11-27 15:25:18 -05:00
Evan You
7209fb66c2 test: wip more tests for BaseTransition 2019-11-27 12:17:16 -05:00
Gabriel Loiácono
fbcc47841b fix(runtime-core): fix error when passed plugin is undefined (#502) 2019-11-27 09:18:03 -05:00
Gabriel Loiácono
d4f4c7c4d4 fix(runtime-core): renderList with default value when source is undefined (#498) 2019-11-26 21:00:32 -05:00
Evan You
bb39910e8e test: wip tests for BaseTransition 2019-11-26 18:07:05 -05:00
Evan You
43097987cf feat(core): respect $stable slots flag per RFC 2019-11-26 10:03:36 -05:00
JiZhi
fc28a677bc chore: fix warn typo (#496) 2019-11-26 09:27:51 +01:00
Rustin
d5f4cc9c42 chore: fix comment typo (#499)
* chore(typo): fix comment typo

* chore(typo): fix comment typo of KeepAlive
2019-11-26 09:26:03 +01:00
Evan You
c6fb506fc0 feat(transition): compat with keep-alive 2019-11-25 17:35:15 -05:00
Evan You
16ea2993d6 test: fix resolveDyanmicComponent test 2019-11-25 12:51:57 -05:00
Evan You
08a3d95e52 fix: resolveDynamicComponent should use context instance 2019-11-25 11:41:28 -05:00
Evan You
01eb3c12e9 feat(transition): warn non-animatable component root node 2019-11-25 11:41:28 -05:00
Evan You
1765985ec2 feat(transition): support in templates 2019-11-24 18:37:59 -05:00
Evan You
a834807942 refactor: rename transition components 2019-11-24 16:00:46 -05:00
Evan You
bdafa1dfc4 refactor: adjust warning for fn props and component with many props 2019-11-23 22:17:46 -05:00
Evan You
a6aa64b0cc refactor: tweaks 2019-11-22 23:32:53 -05:00
Evan You
1b8236615e feat(transition): handle persisted mode 2019-11-22 23:21:53 -05:00
Evan You
24b4120c21 types: fix dts 2019-11-22 18:09:26 -05:00
Evan You
5c691aebfd feat(transition): handle cancel hooks 2019-11-22 17:10:17 -05:00
Evan You
7859e4bce3 feat(transition): CSS transition for runtime-dom 2019-11-22 15:35:41 -05:00
Evan You
21c41b3228 types: fix Transition exported typing 2019-11-21 10:21:09 -05:00
Evan You
79f23a2f77 feat(transition): support component child 2019-11-20 22:46:32 -05:00
Evan You
93561b080e feat(transition): base transition component 2019-11-20 22:46:32 -05:00
JiZhi
f838715b7c test(runtime-core): add tests for scheduler (#462) 2019-11-16 16:32:06 -05:00
JiZhi
aa6c67ee2e fix(scheduler): warn recursive updates in postFlushCbs as well (#456) 2019-11-14 12:06:23 -05:00
ztplz
8e8397374c chore: remove useless code (#447) 2019-11-14 11:23:04 -05:00
Evan You
08bf9976ae types: ensure props are readonly 2019-11-09 18:40:25 -05:00
张晨成
f2cdc82be3 chore: fix typo (#439) 2019-11-08 22:41:55 -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
e79c918676 feat(inject): allow usage in functional components 2019-11-06 12:51:26 -05:00
Evan You
c61e5463fa feat: warn duplicate plugin installations 2019-11-05 10:49:15 -05:00
Chester
2d5f9b58ac refactor: skip destructuring when use with (#425) 2019-11-05 10:45:04 -05:00
Evan You
dfc7c0f12a refactor: adjust internal vnode types + more dts tests 2019-11-04 18:38:55 -05:00
Evan You
957d3a0547 refactor: portal should not expect ref target 2019-11-04 14:42:47 -05:00
sh7dm
1a361e2e71 test(createRenderer): add tests for portal and fix found bugs 2019-11-04 14:37:50 -05:00
Evan You
e1d25e3537 feat: show fragment ids in dev 2019-11-04 14:28:01 -05:00
Evan You
300a705221 refactor: use __TEST__ flag 2019-11-04 14:28:01 -05:00
Evan You
25af8dc73b refactor: improve warning output 2019-11-02 23:21:02 -04:00
Evan You
7f054782ad feat: warn ref usage on functional components 2019-11-02 21:33:37 -04:00
Evan You
a651fc44f6 refactor: adjust shapeFlag naming 2019-11-02 21:26:25 -04:00
Evan You
90b9884eb4 refactor: rename/re-organize files 2019-11-02 12:18:35 -04:00
Evan You
abdaf10d88 chore: comments regarding Readonly usage 2019-11-02 10:40:08 -04:00
Evan You
26c859aedd chore: simplify check 2019-11-02 10:38:25 -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
7b7b8ef221 types: improve h inference + infer required props without need for as const 2019-11-01 17:06:19 -04:00
Evan You
b5c501c0b4 fix: fix shapeflags export 2019-11-01 17:05:38 -04:00
Evan You
492c1306f6 types: fix suspense exported type 2019-11-01 12:43:27 -04:00
Evan You
fc5b2964de types: fix dts reliance on @vue/shared 2019-11-01 12:24:33 -04:00
Evan You
5eee1152ca types: (wip) improve dts output 2019-11-01 11:32:53 -04:00
Evan You
06c5b0a861 types: refactor VNodeProps type 2019-11-01 09:58:27 -04:00
Evan You
3a6dcd3aba types: improve h() and TSX type inference
- Should allow extraneous props as attrs in TSX
- Should check props when using constructor type returned by
  createComponent() in h()
2019-10-31 12:43:05 -04:00
Evan You
b114cdf6ee chore: comments explaining keep-alive implementation details [ci skip] 2019-10-31 12:41:28 -04:00
Evan You
4631f5323b test: more tests for keep-alive 2019-10-30 23:32:29 -04:00
Evan You
5fcb81050a test: tests for keep-alive 2019-10-30 21:41:28 -04:00
Evan You
a42d165285 chore: rename 2019-10-30 15:43:12 -04:00
Dmitry Sharshakov
d3d2353eac feat(suspense): replace errors with warnings (#412) 2019-10-30 11:37:05 -04:00
Evan You
e98c558bf3 chore: fix types 2019-10-30 11:29:08 -04:00
Evan You
247c53672d refactor(reactivity): simplify effect options 2019-10-30 11:11:23 -04:00
Evan You
c6cbca25fe feat(core): keep-alive 2019-10-29 22:28:38 -04:00
Evan You
083296ead6 fix: fix h signature for suspense 2019-10-29 14:04:53 -04:00
Evan You
4dd5d2cb74 refactor(suspense): move more suspense details into suspense.ts 2019-10-29 12:40:54 -04:00
Evan You
17d71fa407 refactor(suspense): make suspense tree-shakeable 2019-10-29 12:30:09 -04:00
Dmitry Sharshakov
5cce23f4c6 feat(apiApp): add more warnings (#394) 2019-10-28 16:22:03 -04:00
Dmitry Sharshakov
325e15ef41 feat(createRenderer): handle errors in function refs (#403) 2019-10-28 12:03:30 -04:00
Evan You
34989ef7fe chore: license 2019-10-28 11:15:17 -04:00
likui
8454e7e004 refactor: remove unnecessary variable (#401) 2019-10-28 10:13:26 -04:00
Dmitry Sharshakov
db7666d0f3 fix(warning): handle errors in warn handler (#396) 2019-10-27 20:55:50 -04:00
Dmitry Sharshakov
e7e3eb8662 refactor(VNode): improve helper types (#392) 2019-10-27 20:54:54 -04:00
Dmitry Sharshakov
e581b14dff feat(apiApp): return app from provide method for chaining (#393) 2019-10-27 20:54:33 -04:00
Evan You
a8aa328907 chore: comment on cloneVNode implementation [ci skip] 2019-10-27 20:45:59 -04:00
Evan You
43f4bd3aaa chore: fix typing for withDirectives 2019-10-26 16:32:27 -04:00
Evan You
07ce2c5fa7 perf: improve directive runtime performance 2019-10-26 16:00:07 -04:00
Dmitry Sharshakov
7394f7ec42 fix(apiInject): fix stringifying of symbol injection key (#383) 2019-10-26 10:52:29 -04:00
Dmitry Sharshakov
134e932322 fix(types): fix VNodeTypes unique symbols (#387) 2019-10-26 10:51:55 -04:00
Dmitry Sharshakov
49914efc9e fix(Portal): add ability to use element as target (#380) 2019-10-26 10:32:16 -04:00
Evan You
b788c03992 test: fix context.attrs test case 2019-10-26 10:31:36 -04:00
Evan You
b3282028bb chore: remove it.only 2019-10-26 10:27:49 -04:00
Evan You
8edfbf9df9 feat(core): adjust attrs fallthrough behavior 2019-10-25 12:12:17 -04:00
Junyan
d76cfba7fb refactor(reactivity): reduce code of type check (#377) 2019-10-25 11:15:04 -04:00