Commit Graph

109 Commits

Author SHA1 Message Date
Evan You 34ad609bd7 refactor(runtime-core): use Symbol.for for runtime Symbols 2023-02-21 17:42:06 +08:00
Evan You ffef822869 fix(custom-elements): respect slot props in custom element mode 2022-11-11 16:06:05 +08:00
Evan You 8dbf083133 build: put ssrContext warning behind __DEV__ flag 2022-11-09 11:41:26 +08:00
Anthony Fu 534593cfa8 chore: format 2022-10-03 15:30:43 +08:00
Evan You cae1aa82cc chore: use stricter slots type in createSlots 2022-09-28 10:38:27 +08:00
Evan You 8963c5508c fix(ssr): fix dynamic slot regression in ssr
fix #6651
2022-09-28 10:25:01 +08:00
Evan You 00036bb52c fix(slots): ensure different branches of dynamic slots have different keys
fix #6202
2022-08-30 15:55:09 +08:00
Evan You 0739f8909a fix(custom-element): fix event listeners with capital letter event names on custom elements
close https://github.com/vuejs/docs/issues/1708
close https://github.com/vuejs/docs/pull/1890
2022-08-30 14:07:35 +08:00
Evan You 9734b31c31 fix(sfc): avoid auto name inference leading to unwanted recursion
fix #5965
fix #6027
fix #6029
2022-06-06 17:36:49 +08:00
huangcheng a3881299e9
fix(runtime-core): handle NaN identity check in v-memo (#5852)
fix #5853
2022-05-12 19:49:51 -04:00
Evan You 67099fe202 fix(runtime-core): ensure consistent behavior between dev/prod on invalid v-for range
close #5867
2022-05-06 16:49:15 +08:00
edison f4d2c9fc6a
fix(custom-elements): work with async component + slots (#4657)
close #4639
2022-04-13 05:58:29 -04:00
Evan You 6cfd72e760 refactor: move type utils to shared 2022-01-16 15:47:00 +08:00
fishDog 3c449cd408
fix(types): fix propType<any> type inference (#4985)
fix #4983
2021-11-25 04:52:13 -05:00
Evan You 71f22061a6 chore: improve component resolution failure message 2021-09-17 10:01:04 -04:00
Evan You b40845153c feat(experimental): expose ref macro types using separate d.ts file 2021-08-23 20:35:12 -04:00
Evan You 62f752552a refactor(compiler): extract shared ast transform utils
Also improve referenced identifier check using isReferenced from  @babel/types
2021-08-22 13:24:16 -04:00
Evan You 4adc5042f9 types: improve ref sugar $computed typing 2021-08-20 00:07:16 -04:00
Evan You 00b76d3dc1 feat(sfc): support $shallowRef ref sugar 2021-08-11 10:19:58 -04:00
lidlanca 6779bff537
feat(runtime-core): support dynamic / external array in v-memo (#4255) 2021-08-09 15:39:22 -04:00
edison a211e271ee
fix(v-memo): ensure track block when returning cached vnode (#4270)
fix #4253
2021-08-06 21:44:45 -04:00
edison 3b60358d0e
fix(v-memo): should work on v-for with constant expression (#4272)
fix #4246
2021-08-06 21:37:09 -04:00
Evan You bf2589b1f0 refactor(compiler-sfc): use shallowRef for ref sugar destructure 2021-08-04 15:39:32 -04:00
Evan You 47f488350c chore: run updated prettier 2021-07-19 18:24:18 -04:00
Evan You 327c8983fb types: typing for ref macros 2021-07-16 17:35:04 -04:00
Evan You bf4893c17c types: fix dts tests 2021-07-16 14:30:49 -04:00
Evan You 8610e1c9e2 feat(runtime-dom): defineCustomElement 2021-07-16 14:30:49 -04:00
Evan You 3b64508e3b feat: v-memo 2021-07-16 14:30:49 -04:00
Evan You e2ca67b59a fix(runtime-core): align option merge behavior with Vue 2
fix #3566, #2791
2021-06-02 15:19:56 -04:00
HcySunYang 201060717d
fix(runtime-core): should not track dynamic children when the user calls a compiled slot inside template expression (#3554)
fix #3548, partial fix for #3569
2021-05-25 13:33:41 -04:00
GU Yiling 9b160b9405
fix(types): declared prop keys should always exist in `props` argument (#3726) 2021-05-12 17:47:31 -04:00
Evan You 7dc681c196 wip: filters compat 2021-04-19 12:29:55 -04:00
Evan You 37c17091fd fix: ensure backwards compat for pre-compiled sfc components
fix #3493
2021-03-27 10:53:45 -04:00
Evan You abd129d845 fix(component): prioritize registered component over implicit self-reference via filename
ref: #2827
2021-03-26 10:04:36 -04:00
Evan You 02cbbb718c perf: support only attaching slot scope ids when necessary
This is done by adding the `slotted: false` option to:

- compiler-dom
- compiler-ssr
- compiler-sfc (forwarded to template compiler)

At runtime, only slotted component will render slot fragments with
slot scope Ids. For SSR, only slotted component will add slot scope Ids
to rendered slot content. This should improve both runtime performance
and reduce SSR rendered markup size.

Note: requires SFC tooling (e.g. `vue-loader` and `vite`) to pass on
the `slotted` option from the SFC descriptoer to the `compileTemplate`
call.
2021-03-05 18:28:12 -05:00
Evan You aea88c3280 refactor: fix implementation of SFC :slotted id handling
fix #2892
2021-03-05 18:28:12 -05:00
Evan You 310cb8cfab chore: fix useSSRContext casing in warning message 2021-01-29 15:03:52 -05:00
edison 82bf7ebf36
refactor(runtime-core): extract common getComponentName function (#2454) 2020-12-04 17:03:03 -05:00
Evan You 67d1aac6ae feat(sfc): allow sfcs to recursively self-reference in template via name inferred from filename
e.g. A file named `FooBar.vue` can refer to itself as `<FooBar/>`. This gets rid of the need for the `name` option.
2020-11-30 12:30:51 -05:00
Evan You 2ab8c41a1a fix(slots): dynamically named slots should be keyed by name
fix #2535
2020-11-27 14:35:46 -05:00
HcySunYang ce4915d8be
fix(slots): should render fallback content when slot content contains no valid nodes (#2485)
fix #2347, fix #2461
2020-11-26 11:35:45 -05:00
Carlos Rodrigues 1f2a652a9d
fix(types): h support for resolveComponent (#2402)
close #2357
2020-10-20 15:56:29 -04:00
ᴜɴвʏтᴇ 052a621762
feat(compile-core): handle falsy dynamic args for v-on and v-bind (#2393)
fix #2388
2020-10-19 17:15:53 -04:00
underfin 02f355eb69
fix(v-for): handle and warn when `v-for` receives non-integer range number (#2247)
close #2245
2020-10-13 16:28:24 -04:00
HcySunYang 5b82c48c7b
fix(runtime-core): enable block tracking when normalizing plain element with slot children (#1987)
fix #1980
2020-09-01 12:38:47 -04:00
Evan You 0cb7f7f880 fix(runtime-core): fix resolving assets from mixins and extends
fix #1963
2020-08-26 18:09:54 -04:00
Evan You f02e2f99d9 fix(runtime-core): disable block tracking when calling compiled slot function in tempalte expressions
fix #1745, fix #1918
2020-08-21 12:47:45 -04:00
HcySunYang 7ffb79c563
fix(runtime-core): correctly track dynamic nodes in renderSlot (#1911) 2020-08-20 09:37:26 -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 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