Commit Graph

767 Commits

Author SHA1 Message Date
Evan You 124373db50 wip: isolatedModules + use rollup-plugin-esbuild 2023-02-03 04:30:19 +08:00
Anthony Fu 4a16b204be chore: run format 2023-01-12 12:58:11 +01:00
三咲智子 Kevin Deng 87c72ae49a
fix(v-model): ensure v-model listener casing is consistent with manual v-on listener (#7067)
fix #7066
2022-11-14 02:21:29 -05:00
Cédric Exbrayat b46ba6e2ad
chore(compiler-core): missing space in v-slot mixed usage error message (#7076) 2022-11-14 02:06:24 -05:00
Samuel Rigaud 378386694b
fix(compiler-core): typeof should be allowed in browser expression validation (#7037) 2022-11-14 01:50:35 -05:00
三咲智子 Kevin Deng 9060bf0353
refactor(compiler-core): make ast.helpers a Set (#6774) 2022-11-13 20:44:02 -05:00
Evan You 15e889afaf fix(v-model): fix incorrect codegen for non-ref bindings
fix #6241
2022-11-10 15:32:58 +08:00
Evan You 001184e6bb fix(compiler/v-model): catch incorrect v-model usage on prop bindings
close #5584
2022-11-10 10:42:27 +08:00
白雾三语 2c27556fe5
fix(compiler): avoid namespace collisions when transforming template refs in inline mode (#6975)
fix #6964
2022-11-08 22:22:29 -05:00
白雾三语 5bfe438ef3
fix(compiler-core/v-on): only apply case preservation on native elements (#6902)
fix #6900
2022-11-08 21:58:22 -05:00
Evan You dd3354c4c7 fix(compiler-core): fix parsing error on comments between v-if in prod
close #6843
2022-11-08 23:35:35 +08:00
Rudy 48876182db
fix(compiler-core): keep whitespaces between interpolation and comment (#6828)
fix #6352
2022-11-08 09:50:43 -05:00
Travis bcfe480d75
fix(compiler-core/v-on): support inline handler with return type annotation (#6769)
fix #6378
2022-11-07 22:09:15 -05:00
被雨水过滤的空气(Rairn) 640cfce4ff
fix(compiler-core): avoid duplicate keys in codegen with `v-if` (#6689)
fix #6641
2022-11-07 22:04:31 -05:00
Evan You 09bb3e996e fix(compiler-ssr): fix invalid codegen when v-slot name is explicit empty attr (#3326)
squashed from fix by @tjk
2022-10-26 16:18:19 +08:00
世新 82e3f2dc30
chore: symbols as helperNameMap index type (#6622) 2022-10-06 05:26:16 +08:00
Anthony Fu 534593cfa8 chore: format 2022-10-03 15:30:43 +08:00
Evan You f402d416b8 refactor(compiler-core): extract props merging helper 2022-09-28 10:59:13 +08:00
Dunqing f9d43b99f8
fix(compilre-core): dynamic v-on and static v-on should be merged (#6747)
fix #6742
2022-09-27 22:46:55 -04:00
Evan You 03820193a8 fix(ssr): fix pre tag windows newline hydration mismatch
fix #6410
2022-09-28 08:45:32 +08:00
Evan You fc5bdb36ed fix(runtime-core): avoid hoisted vnodes retaining detached DOM nodes
fix #6591
2022-09-27 16:20:52 +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
Travis 7fbc933f4d
fix(compiler-core): fix svg with directives being incorrectly hoisted (#5919)
fix #5289
2022-05-22 21:40:53 -04:00
Evan You 516bc548fc fix(compiler-ssr): fix wrong attrs fallthrough on non-single-root v-if branches
fix #5140
2022-05-19 11:21:17 +08:00
Evan You 415091b0ee fix(compiler-core): should generate HYDRATE_EVENTS flag on dynamic component that resolves to element
fix #5870
2022-05-17 16:39:48 +08:00
阿崔cxr e85e0a7f3a
chore: use ast node creation helper (#5255) 2022-05-13 04:37:50 -04:00
edison 242914d938
fix(reactivity-transform): fix props access codegen for non-identifier prop names (#5436)
fix #5425
2022-05-12 22:38:46 -04:00
Evan You 6283b2ec41 fix(compiler-dom): properly stringify v-html/v-text with constant value
fix #5439
close #5445
2022-05-13 08:57:43 +08:00
Evan You 0f00cf43cf fix(compiler-core): normalize v-bind:style with array literal value
fix #5106
2022-05-12 16:31:16 +08:00
edison cd395559ce
chore(compiler-core): use aliasHelper (#3592) 2022-05-11 20:40:05 -04:00
Evan You 51f3d386de fix(compiler-core): template v-if should never be treated as dev root fragment
close #5189
2022-05-11 17:43:20 +08:00
Evan You 410144149f fix(compiler-sfc): defineProps return binding or rest binding should be considered reactive 2022-05-10 17:34:15 +08:00
Evan You ce34d9114e chore: remove v3.vuejs.org references 2022-02-07 13:13:26 +08:00
Evan You 60cf175d88 feat(ssr): support custom directive getSSRProps in optimized compilation
close #5304
2022-02-04 08:58:31 +08:00
btea 63210fe41a
refactor: includes instead of indexOf (#5117) 2022-01-21 02:36:48 -05:00
edison 9f55e6fbb1
fix(compiler-core): handle v-memo in template v-for (#5291)
fix #5288
2022-01-21 01:54:46 -05:00
Yugang Cao e603fd258c
chore: fix typo (#5261) [ci skip] 2022-01-21 01:18:34 -05:00
Evan You ae4b0783d7 chore: update repo references 2022-01-18 16:43:59 +08:00
Forzen FIsh 57a09331b2
chore: fix some typos (#5050) [ci skip] 2021-12-11 20:58:46 -05:00
Evan You 41c18effea feat: support ref in v-for, remove compat deprecation warnings 2021-12-10 23:49:01 +08:00
Evan You 4b0ca8709a feat(compiler-core): support aliasing vue: prefixed events to inline vnode hooks 2021-12-10 16:09:23 +08:00
Evan You 1c9a4810fc fix(compiler): force block for custom dirs and inline beforeUpdate hooks
to ensure they are called before children updates
2021-12-10 15:36:10 +08:00
Forzen FIsh 095fe269cb
chore: remove redundant variable declaration (#5053) 2021-12-05 23:10:58 -05:00
Evan You 29beda7c6f fix(compiler-dom): avoid bailing stringification on setup const bindings 2021-12-06 11:53:02 +08:00
btea e1ee3c4fe8
refactor(compiler-core): refactor isComponentTag method (#4934) 2021-11-14 21:39:13 -05:00
Che Guevara e772108922
chore: break compat mode v-for/v-if precedence check loop early (#4773) 2021-10-09 17:12:34 -04:00
Che Guevara 6bcb7a5ea3
chore: remove deprecated usage of String.prototype.substr (#4699) 2021-10-08 12:31:34 -04:00
Evan You 646e694f0a chore: remove babelParserDefaultPlugins
The version of @babel/parser we are using now has these plugins enabled by default.
2021-10-07 19:33:06 -04:00
Evan You 467e113b95
feat(compiler-sfc): `<script setup>` defineProps destructure transform (#4690) 2021-09-27 14:24:21 -04:00
Herrington Darkholme 7aa0ea06c8
fix(compiler-core): should treat attribute key as expression (#4658) 2021-09-25 14:21:09 -04:00
Evan You 7b7e28ad6a test: fix utils test 2021-09-24 12:34:31 -04:00
Evan You fc85ad28ae fix(build): avoid importing @babel/parser in esm-bundler build
fix #4665
2021-09-23 23:20:53 -04:00
Evan You 8e05b7f9fc fix(ssr): fix ssr runtime helper import in module mode 2021-09-23 10:08:28 -04:00
Evan You d74f21a42c fix(compiler-ssr): import ssr helpers from updated path 2021-09-22 23:28:20 -04:00
Evan You 6257adeaac fix(compiler-core): more robust member expression check in Node 2021-09-22 17:16:21 -04:00
Evan You 686d0149b6 fix(compiler-core): generate TS-cast safe assignment code for v-model
fix #4655
2021-09-22 16:55:06 -04:00
Ziwen Mei 1873f0f48c
chore(compiler-core): fix typo in transformElement (#4649) [ci skip] 2021-09-22 10:12:52 -04:00
Ziwen Mei bf267b1ce3
chore(compiler-core): fix typo in errors.ts and options.ts (#4650) [ci skip] 2021-09-22 10:12:33 -04:00
Ziwen Mei 56be30b5c7
chore(compiler-core): fix typo in hoistStatic (#4625) [ci skip] 2021-09-21 13:06:39 -04:00
就是喜欢陈粒 5addef8ecd
fix(compiler-core): add check when v-else-if is behind v-else (#4603) 2021-09-21 12:59:38 -04:00
Herrington Darkholme d8a36d0198
fix(compiler-core): only merge true handlers (#4577) 2021-09-21 12:37:51 -04:00
Herrington Darkholme 044812525f
fix(compiler-core): dedupe renderSlot's default props (#4557) 2021-09-21 12:31:27 -04:00
Evan You d23fde3d3b fix(compiler-core): more robust member expression check when running in node
fix #4640
2021-09-21 12:19:27 -04:00
Evan You 0dc521b9e1 fix(compiler-core): support ts syntax in expressions when isTS is true 2021-09-20 11:51:01 -04:00
Evan You cb2d7c0e3c fix(compiler-core): ensure hoisted scopeId code can be treeshaken 2021-09-19 17:14:26 -04:00
lidlanca fc968d607b
fix(compiler-core): v-on inline async function expression handler (#4569)
fix #4568
2021-09-16 12:36:04 -04:00
ygj6 f29d061124
fix(compiler): fix template ref codegen for setup-maybe-ref binding types (#4549)
fix #4546
2021-09-16 11:33:16 -04:00
Roy Eden b8653d390a
fix(compiler): condense whitespaces in static class attributes (#4432)
fix #4251
2021-09-07 12:01:17 -04:00
Herrington Darkholme 5d262e08d5
fix(compiler-core): pick last char when dynamic directive doesn't close (#4507) 2021-09-07 11:36:37 -04:00
Herrington Darkholme 1c4f0f0afd
chore: fix typo in jsdoc (#4526) [ci skip] 2021-09-07 11:31:27 -04:00
Evan You 1045590d4b fix(compiler-core): avoid runtime dependency on @babel/types
fix #4531
2021-09-07 09:54:49 -04:00
edison 5594643d7b
fix(compiler-sfc): fix script setup ref assignment codegen edge case (#4520)
fix #4514
2021-09-05 18:02:50 -04:00
ygj6 4cd282b0a1
fix(compiler): generate function ref for script setup if inline is ture. (#4492) 2021-09-02 11:27:20 -04:00
dependabot[bot] 305883a12f
build(deps-dev): bump typescript from 4.3.5 to 4.4.2 (#4482)
* build(deps-dev): bump typescript from 4.3.5 to 4.4.2

Bumps [typescript](https://github.com/Microsoft/TypeScript) from 4.3.5 to 4.4.2.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v4.3.5...v4.4.2)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* build(deps-dev): bump typescript from 4.3.5 to 4.4.2

* test: fix nodeOps types

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Carlos Rodrigues <carlos@hypermob.co.uk>
Co-authored-by: Evan You <yyx990803@gmail.com>
2021-09-02 09:53:57 -04:00
Herrington Darkholme c00925ed5c
fix(compiler): report invalid directive name error (#4494) (#4495) 2021-09-02 09:42:20 -04:00
Evan You 3628991906 fix(compiler): only generate non-static ref for script setup if the binding exists
fix #4431
2021-09-01 17:27:03 -04:00
Herrington Darkholme 4502a0eab5
refactor(compiler): refine CDATA endTokens (#4459) 2021-09-01 16:43:10 -04:00
Herrington Darkholme 7178716b4c
chore: fix typo in error message (#4434) [ci skip] 2021-09-01 16:42:24 -04:00
Evan You 935b4e2210 fix(compiler-core): remove no longer necessary withScopeId import in generated code 2021-09-01 11:30:34 -04:00
Evan You 4c468eb30a fix(build): avoid imports to @babel/types in client build of compiler-core 2021-08-24 12:39:38 -04:00
shadowings-zy 32827506ff
fix(compiler-core): fix duplicated component identifier for names with non-ascii chars (#4429)
fix #4422
2021-08-24 11:48:08 -04:00
Evan You f1fa30adc3 refactor(ref-transform): improve algorithm into one pass 2021-08-23 18:22:21 -04:00
Evan You 06051c4bf2 feat(experimental): support ref transform for sfc normal `<script>` 2021-08-23 16:00:46 -04:00
Evan You 986681568f chore: export extractIdentifiers 2021-08-23 12:18:43 -04:00
Evan You e565831c98 feat(experimental): shouldTransform for ref-transform 2021-08-23 10:45:58 -04:00
Evan You db8dc753c0 feat(experimental): standalone ref transform 2021-08-22 22:21:42 -04:00
Evan You 84b24a71f0 chore: bump deps 2021-08-22 15:33:21 -04:00
Evan You 73f8cae465 refactor(compiler): further extract babel ast utilities 2021-08-22 14:51:16 -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
fishDog 092bdcdf58
fix(compiler-core): fix style binding edge case (#4319)
where static `style` attribute and `:style` with constant binding are used together

fix #4317
2021-08-16 16:37:31 -04:00
Evan You a6c1db2728 fix(compiler-core): fix hoisting logic for elements with cached handlers + other bindings
fix #4327
2021-08-16 15:57:10 -04:00
fishDog abb3a81e87
fix(compiler-core): detected forwarded slots in nested components (#4268)
fix #4244
2021-08-06 22:37:55 -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
webfansplz 9c931d8154
chore(types): remove unnecessary non-null assertion (#4169) 2021-07-21 15:50:08 -04:00
Evan You a21ca3dccc fix(compiler-core): fix self-closing tags with v-pre 2021-07-19 19:29:28 -04:00
Evan You 7e75b4105a refactor: better fix for ec6abe8d 2021-07-19 19:23:44 -04:00
Evan You ec6abe8d5e fix(compiler-sfc): fix whitespace preservation when block contains single self-closing tag 2021-07-19 18:54:35 -04:00
Evan You 47f488350c chore: run updated prettier 2021-07-19 18:24:18 -04:00
Austin Keener dd0f9d1ce6
feat(compiler): allow 'comments' option to affect comment inclusion in dev (#4115)
Close: #3392
Replace: #3395
2021-07-19 11:40:37 -04:00
webfansplz df0ce21836
chore(types): improve of type assertion (#4141) 2021-07-19 10:32:07 -04:00
Evan You 317654b34f chore: fix codegen error due to scopeId deprecation change 2021-07-16 14:30:49 -04:00
fishDog eca4d7891a chore(compiler-core): reduce unnecessary cache inside v-once (#4112) 2021-07-16 14:30:49 -04:00
Evan You e5a4412764 feat(sfc): support namespaced component tags when using `<script setup>` 2021-07-16 14:30:49 -04:00
Evan You a8edf2bdff refactor: remove outdated slot ctx wrapper codegen 2021-07-16 14:30:49 -04:00
Evan You 29732c2c86 fix: ignore .prop/.attr modifiers in ssr 2021-07-16 14:30:49 -04:00
Evan You f596e008ef refactor: remove deprecated scopeId codegen
BREAKING CHANGE: Output of SFC using `<style scoped>` generated by 3.2+
will be incompatible w/ runtime <3.2.
2021-07-16 14:30:49 -04:00
Evan You 1c7d737cc8 feat: support v-bind .prop & .attr modifiers
Also allows render function usage like the following:

```js
h({
  '.prop': 1, // force set as property
  '^attr': 'foo' // force set as attribute
})
```
2021-07-16 14:30:49 -04:00
Evan You 3b64508e3b feat: v-memo 2021-07-16 14:30:49 -04:00
Evan You b7ea7c1485 perf: also hoist all-static children array 2021-07-16 14:30:49 -04:00
Evan You 02339b67d8 perf: hoist dynamic props lists 2021-07-16 14:30:49 -04:00
HcySunYang ceff89905b perf: improve VNode creation performance with compiler hints (#3334) 2021-07-16 14:30:49 -04:00
Evan You 5af718ba41 fix(v-model): support calling methods in v-model expression
close #3993
2021-07-15 13:34:42 -04:00
Evan You 395572b593 fix(v-on): proper member exp detection for bracket assignment
fix #4097
2021-07-15 13:26:09 -04:00
Evan You 963085d18c fix(v-on): properly detect member expressions with optional chaining
fix #4107
2021-07-15 12:23:07 -04:00
edison c23153d82e
fix(compiler-core): fix forwarded slots detection on template slots (#4124)
fix #4123
2021-07-15 11:37:11 -04:00
Evan You a44d528af1 fix(codegen): ensure valid types in genreated code when using global directives
fix #4054
2021-07-02 07:59:47 -04:00
Evan You d2df28dca4 fix(compiler-core): properly exit self-closing pre tag
fix #4030
2021-07-01 15:34:12 -04:00
Evan You d35e0b1468 feat(sfc): change `<script setup>` directive resolution to require v prefix
close #3543
2021-06-28 17:35:31 -04:00
Evan You 08e93220f1 fix(compiler-core/compat): fix is prop usage on components
also fix v-bind:is usage on plain element in compat mode

fix #3934
2021-06-21 16:16:49 -04:00
Evan You bc100c5c48 fix(compiler-core): improve member expression check
fix #3910
2021-06-09 11:57:48 -04:00
edison 2c7bd42801
fix(compiler-sfc): fix template expression assignment codegen for script setup let refs (#3626)
fix #3625
2021-05-28 17:58:46 -04:00
HcySunYang 9b2e894017
fix(compiler-core): improve the isMemberExpression function (#3675) 2021-05-27 21:07:26 -04:00
HcySunYang 7c74feb3dc
fix(compiler-dom): comments in the v-if branchs should be ignored when used in Transition (#3622)
fix #3619
2021-05-24 17:10:29 -04:00
HcySunYang 47da92146c
fix(compiler-core): fix whitespace management for slots with whitespace: 'preserve' (#3767)
fix #3766
2021-05-13 18:24:43 -04:00
HcySunYang a56ab148fd
fix(compiler-core): bail out to array children when the element has custom directives + only one text child node (#3757) 2021-05-12 16:12:32 -04:00
Evan You 61edb700d7 wip: only generate non-scope slot flag when compatConfig is present 2021-05-05 16:36:16 -04:00
Evan You 7a8cee8688 wip: remove v-if key warning as there are legit use cases 2021-05-05 16:35:44 -04:00
Evan You 7f93c76b96 wip: exclude legacy slots from $scopedSlots 2021-05-05 11:06:15 -04:00
Evan You ae0fb14305 wip: fix native template compat 2021-05-04 18:26:28 -04:00
Evan You bd3cc4d2c7 wip: tests for compiler compat 2021-04-30 15:50:32 -04:00
Evan You b4c92ccf6b wip: move compat test cases + filter tests 2021-04-29 16:58:14 -04:00
Evan You e486254431 fix(compiler-core): preserve comment content in production when comments option is enabled 2021-04-28 11:22:16 -04:00
Evan You 86703c23a6 wip: ref v-for compat 2021-04-26 17:35:41 -04:00
Evan You b047a0864c refactor(compiler): improve whitespace: 'preserve' behavior from #1600
- discard leading/ending whitespace inside an element
- condense preserved whitesapce into single space
2021-04-26 11:46:17 -04:00
CodeDaraW dee3d6ab8b feat(compiler-core): whitespace handling strategy 2021-04-26 09:44:27 -04:00
Evan You 7dc681c196 wip: filters compat 2021-04-19 12:29:55 -04:00
Evan You 3ea68691e2 wip: inline-template compat 2021-04-17 23:19:40 -04:00
Evan You 1390ece04f wip: refactor 2021-04-17 22:50:16 -04:00
Evan You 505269405e wip: plain template tag compat 2021-04-17 22:16:48 -04:00
Evan You 048ac299f3 perf(compiler): skip unncessary checks when parsing end tag 2021-04-17 22:05:18 -04:00
Evan You 2c31227e7c wip: warn v-bind object ordering 2021-04-17 20:53:55 -04:00
Evan You bf41354abd wip: remove unncessary deprecation messages 2021-04-17 16:13:57 -04:00
Evan You c5c304af14 wip: compiler should default to v3 behavior 2021-04-17 15:55:14 -04:00
Evan You 3528ced0b4 wip: warn key usage of v-if branches 2021-04-17 15:35:44 -04:00
Evan You ab21468982 wip: warn v-if/v-for co-usage 2021-04-17 14:38:30 -04:00
Evan You 7ceb873783 wip: v-bind.sync compat 2021-04-16 17:11:44 -04:00
Evan You ad97bbab85 wip: invert compiler compat behavior default during tests 2021-04-16 12:26:17 -04:00
Evan You bbf708dbe9 wip: support configuring compiler deprecations at runtime + warn invalid deprecation configs 2021-04-16 12:19:12 -04:00
Evan You 79cbf21c3e wip: generate codeframe for compiler deprecations 2021-04-16 11:51:47 -04:00
Evan You d974adb327 wip: is usage compat 2021-04-16 11:43:05 -04:00
Evan You e130c7db23 wip: compiler deprecation config 2021-04-12 19:43:53 -04:00
Evan You af9e6999e1 feat: support casting plain element to component via is="vue:xxx"
In Vue 3's custom elements interop, we no longer process `is` usage on
known native elements as component casting. (ref:
https://v3.vuejs.org/guide/migration/custom-elements-interop.html)
This introduced the need for `v-is`. However, since it is a directive,
its value is considered a JavaScript expression. This makes it awkward
to use (e.g. `v-is="'foo'"`) when majority of casting is non-dynamic,
and also hinders static analysis when casting to built-in Vue
components, e.g. transition-group.

This commit adds the ability to cast a native element to a Vue component
by simply adding a `vue:` prefix:

```html
<button is="vue:my-button"></button>
<ul is="vue:transition-group" tag="ul"></ul>
```
2021-04-12 13:08:07 -04:00
Evan You 7f7dcc9f7d fix(compiler-sfc): fix wrong scopeId for nested `<script setup>` components 2021-04-01 18:11:04 -04:00
Calvin Liang 0fe567abfc
fix(compiler-core): properly transform replaced nodes (#2927) 2021-03-29 18:08:10 -04:00
Evan You f5827fdf78 fix(compiler-sfc): do not resolve assets from setup bindings
when not using script setup

fix #3270, fix #3275
2021-03-29 16:11:38 -04:00
HcySunYang 555b016dcb
fix(compiler-core): allow PascalCase dynamic component tag usage (#3508)
fix #3507
2021-03-29 15:18:25 -04:00
Johnson Chu e752bddb33
fix(compiler-core): fix slot source location (#3494) 2021-03-27 11:20:39 -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
HcySunYang ebedcccdc0
fix(compiler-core): allow unicode to appear in identifiers (#3443)
fix #3440
2021-03-25 17:24:18 -04:00
HcySunYang 7715c49af9
fix(compiler-core): avoid generating useless createVNode helper (#2938)
close #2739
2021-03-25 17:01:50 -04:00
funkyfun c8aed13711
chore(types): remove redundant 'undefined' type (#3484) 2021-03-25 16:19:02 -04:00
HcySunYang b4b82159e2
fix(compiler-core): should not condense whitespace in RCDATA text mode (#3482)
fix #3479
2021-03-25 15:53:03 -04:00
HcySunYang 4bf7ba19bf
fix(compiler-core): detect v-if branch root with comment as dev fragment (#2785)
fix #2780
2021-03-25 15:43:44 -04:00
HcySunYang 602b58ebd1
fix(compiler-core): fix the detection of forwarded slots with v-if or v-for (#3353)
fix #3347
2021-03-22 16:34:46 -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 f74b16ccfe fix(compiler): properly bail stringfication for nested slot elements 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 c69f4ea857 fix(compiler-ssr): avoid duplicated asset imports merged from component slot client branch
fix vitejs/vite#2034
2021-02-15 12:12:50 -05:00
Evan You 03360cefa1 fix(compiler-sfc): treat const reactive() bindings as mutable 2021-02-10 11:39:07 -05:00
Evan You 734c65badd fix(compiler-core): do not mark v-for as stable on const bindings
since the source value may be a reactive array

fix vitejs/vite#1956
2021-02-09 11:57:09 -05:00
xiejiahe 1cc8712235
chore: comment initial space (#3192) [skip ci]
fix(typo): Comment add spaces.
2021-02-08 12:32:12 +01:00
edison 47b3652ecd
chore(compiler-core): improve types (#2428) 2020-12-04 16:28:26 -05:00
Evan You a8352506f6 refactor: cache constant check result on transform context
also fix edge case for missed createVNode import on static svg nodes
2020-12-03 11:10:40 -05:00
Evan You ad4d3915d3 fix(compiler-core): fix missing createVNode import on nested v-for
fix #2718
2020-12-03 11:03:06 -05:00
Evan You e4f09c1419 fix(compiler-core/v-on): handle falsy values when caching v-on handlers
fix #2605
2020-11-30 16:30:36 -05:00
Evan You 9db7095962 fix(compiler-core): fix scope var reference check for v-on expressions
fix #2564
2020-11-30 15:19:32 -05:00
Evan You e41b46c396 chore: annotate generated slot flag 2020-11-30 15:19:32 -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 a76e58e5fd build: avoid shipping patch flag name strings in prod 2020-11-27 18:13:04 -05:00
Evan You 3bc2914e32 fix(attr-fallthrough): ensure consistent attr fallthrough for root fragments with comments
fix #2549
2020-11-27 18:04:26 -05:00
Evan You 55d99d729e fix(compiler-core): fix unintended imports in esm-bundler builds
fix #2258, fix #2515
2020-11-27 11:04:15 -05:00
Evan You 7cd85be2db refactor(compiler-core): reduce slot props check iterations
ref: #2490
2020-11-27 10:00:43 -05:00
edison ef59a30cab
fix(compiler-core): transform kebab case props to camelcase on slots (#2490)
fix #2488
2020-11-27 09:48:30 -05:00
Evan You 69d5c6887e wip: update directive scope variable mapping 2020-11-24 19:04:21 -05:00
Evan You ae2caad740 wip: support resolving directives from setup scope variables by naming convention
v-my-dir can be resovled from setup scope variable named "vMyDir".
2020-11-24 19:04:21 -05:00
Evan You 90bdf59f4c refactor(compiler): better constant hoist/stringify checks 2020-11-20 19:26:07 -05:00
Evan You 8ac2241b22 wip: more consistent compiler-sfc usage + inline mode for ssr 2020-11-20 14:23:09 -05:00
Evan You 4c6078ce25 fix(compiler-core/compiler-sfc): handle destructure assignment expressions 2020-11-18 22:39:08 -05:00
Evan You 4d5242128e chore: fix tests 2020-11-18 22:34:55 -05:00
Evan You 64160e89cc wip: ignore non-ref const mutation cases in codegen 2020-11-18 21:16:09 -05:00
Evan You 8567feb2aa wip: properly handle assignment/update expressions in inline mode 2020-11-18 19:38:38 -05:00
Evan You 4449fc3b9e refactor: finer grained binding types for setup 2020-11-18 19:38:38 -05:00
Evan You 760443dca6 wip: ensure string template refs work in inline mode 2020-11-18 19:38:38 -05:00
Evan You cdc9f336fd wip: new cssVars SSR integration + fix cssVars SSR injection for suspense 2020-11-17 18:54:47 -05:00
Evan You a67325140b wip: test case for v-model + inline mode codegen 2020-11-17 15:59:09 -05:00
Evan You c15bd6235e wip: generate valid v-model and TS code in script setup inline mode 2020-11-17 12:42:58 -05:00
Evan You 41bb7fa330 feat(compiler-sfc): new SFC css varaible injection implementation
ref: https://github.com/vuejs/rfcs/pull/231
2020-11-16 18:27:25 -05:00
Evan You 8ba3a7de40 wip: fix dts tests 2020-11-13 00:12:04 -05:00