Skip to content

Conversation

dependabot-preview[bot]
Copy link

Bumps @vue/compiler-sfc from 3.0.0-rc.4 to 3.0.4.

Release notes

Sourced from @vue/compiler-sfc's releases.

v3.0.4

Please refer to CHANGELOG.md for details.

v3.0.3

Please refer to CHANGELOG.md for details.

v3.0.2

Please refer to CHANGELOG.md for details.

v3.0.1

Please refer to CHANGELOG.md for details.

v3.0.0 One Piece

Today we are proud to announce the official release of Vue.js 3.0 "One Piece". This new major version of the framework provides improved performance, smaller bundle sizes, better TypeScript integration, new APIs for tackling large scale use cases, and a solid foundation for long-term future iterations of the framework.

The 3.0 release represents over 2 years of development efforts, featuring 30+ RFCs, 2,600+ commits, 628 pull requests from 99 contributors, plus tremendous amount of development and documentation work outside of the core repo. We would like to express our deepest gratitude towards our team members for taking on this challenge, our contributors for the pull requests, our sponsors and backers for the financial support, and the wider community for participating in our design discussions and providing feedback for the pre-release versions. Vue is an independent project created for the community and sustained by the community, and Vue 3.0 wouldn't have been possible without your consistent support.

Taking the "Progressive Framework" Concept Further

Vue had a simple mission from its humble beginning: to be an approachable framework that anyone can quickly learn. As our user base grew, the framework also grew in scope to adapt to the increasing demands. Over time, it evolved into what we call a "Progressive Framework": a framework that can be learned and adopted incrementally, while providing continued support as the user tackles more and more demanding scenarios.

Today, with over 1.3 million users worldwide*, we are seeing Vue being used in a wildly diverse range of scenarios, from sprinkling interactivity on traditional server-rendered pages, to full-blown single page applications with hundreds of components. Vue 3 takes this flexibility even further.

Layered internal modules

Vue 3.0 core can still be used via a simple <script> tag, but its internals has been re-written from the ground up into a collection of decoupled modules. The new architecture provides better maintainability, and allows end users to shave off up to half of the runtime size via tree-shaking.

These modules also exposes lower-level APIs that unlocks many advanced use cases:

  • The compiler supports custom AST transforms for build-time customizations (e.g. build-time i18n)
  • The core runtime provides first-class API for creating custom renderers targeting different render targets (e.g. native mobile, WebGL or terminals). The default DOM renderer is built using the same API.
  • The @vue/reactivity module exports functions that provide direct access to Vue's reactivity system, and can be used as a standalone package. It can be used to pair with other templating solutions (e.g. lit-html) or even in non-UI scenarios.

New APIs for tackling scale

The 2.x Object-based API is largely intact in Vue 3. However, 3.0 also introduces the Composition API - a new set of APIs aimed at addressing the pain points of Vue usage in large scale applications. The Composition API builds on top of the reactivity API and enables logic composition and reuse similar to React hooks, more flexible code organization patterns, and more reliable type inference than the 2.x Object-based API.

Composition API can also be used with Vue 2.x via the @vue/composition-api plugin, and there are already Composition API utility libraries that work for both Vue 2 and 3 (e.g. vueuse, vue-composable).

Performance Improvements

Vue 3 has demonstrated significant performance improvements over Vue 2 in terms of bundle size (up to 41% lighter with tree-shaking), initial render (up to 55% faster), updates (up to 133% faster), and memory usage (up to 54% less).

In Vue 3, we have taken the approach of "compiler-informed Virtual DOM": the template compiler performs aggressive optimizations and generates render function code that hoists static content, leaves runtime hints for binding types, and most importantly, flattens the dynamic nodes inside a template to reduce the cost of runtime traversal. The user therefore gets the best of both worlds: compiler-optimized performance from templates, or direct control via manual render functions when the use case demands.

Improved TypeScript integration

Changelog

Sourced from @vue/compiler-sfc's changelog.

3.0.4 (2020-12-02)

Bug Fixes

  • async-component: forward refs on async component wrapper (64d4681), closes #2671
  • attr-fallthrough: ensure consistent attr fallthrough for root fragments with comments (3bc2914), closes #2549
  • build: enable safari10 option for terser (#2472) (20a704f), closes #2470
  • compiler-core: fix scope var reference check for v-on expressions (9db7095), closes #2564
  • compiler-core: fix unintended imports in esm-bundler builds (55d99d7), closes #2258 #2515
  • compiler-core: transform kebab case props to camelcase on slots (#2490) (ef59a30), closes #2488
  • compiler-core/v-on: handle falsy values when caching v-on handlers (e4f09c1), closes #2605
  • compiler-sfc: fix parsing error when lang="" is used on plain element (#2569) (5f2a853), closes #2566
  • compiler-sfc: named imports from .vue file should not be treated as constant (085bbd5), closes #2699
  • compiler-sfc: should not remove import statements with no specifier when compiling script setup (43eab92)
  • compiler-ssr: generate correct children for transition-group (a5d6f80), closes #2510
  • compiler-ssr: handle v-model checkbox with true-value binding (fe5428d)
  • compiler-ssr: should not render key/ref bindings in ssr (5b62662)
  • provide: support symbols in applyOptions (#2616) (7a1a782), closes #2615
  • reactivity: ensure readonly on plain arrays doesn't track array methods. (#2506) (3470308), closes #2493
  • reactivity: ensure add/set on reactive collections return the proxy (#2534) (6e46a57), closes #2530
  • runtime-core: ensure keep-alive deep-watches include/explude props (#2551) (421205d), closes #2550
  • runtime-core: ensure watchers are always registered to correct instance owner (#2495) (735af1c), closes #2381
  • runtime-core: fix emit listener check on kebab-case events (#2542) (3532b2b), closes #2540
  • runtime-core: handle static node move in production (bf16a57)
  • runtime-core: remove static node in production mode (#2556) (2a9ba0c), closes #2553
  • runtime-core: should pause tracking when initializing legacy options (#2524) (0ff2a4f), closes #2521
  • runtime-core: skip functional components in public $parent chain traversal (53f4885), closes #2437
  • runtime-dom: attribute should be removed with nullish values (#2679) (fb6b9f8), closes #2677
  • script-setup: ensure useContext() return valid context (73cdb9d)
  • slots: dynamically named slots should be keyed by name (2ab8c41), closes #2535
  • slots: should render fallback content when slot content contains no valid nodes (#2485) (ce4915d), closes #2347 #2461
  • suspense: fix nested async child toggle inside already resovled suspense (cf7f1db), closes #2215
  • teleport: Teleport into SVG elements (#2648) (cd92836), closes #2652
  • transition: avoid invoking stale transition end callbacks (eaf8a67), closes #2482
  • transition: respect rules in *-leave-from transition class (#2597) (e2618a6), closes #2593
  • types: fix ToRefs type on union value types (e315d84), closes #2687
  • v-model: avoid mutation when using Set models + fix multi select Set model update (f2b0a8e)
  • v-model: respect checkbox true-value/false-value on initial render (48f00c0), closes #2694
  • v-show: ensure v-show conflict with inline string style binding (3cd30c5), closes #2583
  • allow hmr in all builds (46d80f4), closes #2571

Features

  • sfc: allow sfcs to recursively self-reference in template via name inferred from filename (67d1aac)

3.0.3 (2020-11-25)

Commits
  • d067fb2 release: v3.0.4
  • 085bbd5 fix(compiler-sfc): named imports from .vue file should not be treated as cons...
  • 5f2a853 fix(compiler-sfc): fix parsing error when lang="" is used on plain element ...
  • 67d1aac feat(sfc): allow sfcs to recursively self-reference in template via name infe...
  • 43eab92 fix(compiler-sfc): should not remove import statements with no specifier when...
  • bd6e211 release: v3.0.3
  • 6e8482e chore: fix snapshots
  • 69d5c68 wip: update directive scope variable mapping
  • faed989 wip: support inherit-attrs="false" on sfc \<tempalte>
  • 47d73c2 wip: defineOptions -> defineProps + defineEmit + useContext
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
  • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
  • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
  • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
  • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

Additionally, you can set the following in your Dependabot dashboard:

  • Update frequency (including time of day and day of week)
  • Pull request limits (per update run and/or open at any time)
  • Out-of-range updates (receive only lockfile updates, if desired)
  • Security updates (receive only security updates, if desired)

@dependabot-preview dependabot-preview bot added the dependencies Pull requests that update a dependency file label Dec 7, 2020
@dependabot-preview
Copy link
Author

Superseded by #57.

@dependabot-preview dependabot-preview bot deleted the dependabot/npm_and_yarn/vue/compiler-sfc-3.0.4 branch January 1, 2021 19:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants