13 lines
1.9 KiB
Markdown
13 lines
1.9 KiB
Markdown
---
|
|
title: "Vue.js"
|
|
ring: adopt
|
|
quadrant: languages-and-frameworks
|
|
tags: [coding, frontend]
|
|
---
|
|
|
|
[Vue](https://vuejs.org/guide/introduction.html) is a progressive, incrementally adoptable framework for building user interfaces, known for its simplicity and flexibility. The core library is view-focused, making it easy to integrate with other libraries and existing projects. It excels in powering single-page applications when combined with supporting libraries like [Pinia](https://pinia.vuejs.org), [vue-router](https://router.vuejs.org) and [VueUse](https://vueuse.org), but can also be used for building server-side rendered and statically generated web applications with the [Nuxt framework](https://nuxt.com).
|
|
|
|
The HTML-based template syntax in Vue allows for declarative binding of the rendered DOM to the underlying Vue instance's data, which, in combination with the [reactivity system](https://vuejs.org/guide/extras/reactivity-in-depth.html), ensures high performance by intelligently determining the minimal amount of components to re-render and applying the minimal amount of DOM manipulations when the app-state changes. Additionally, applications can be organized into [Single File Components](https://vuejs.org/guide/scaling-up/sfc.html), each containing the template (HTML), style (CSS), and functionality (JS). The [Composition API and 'script setup'](https://vuejs.org/api/sfc-script-setup.html)-syntax further enhance code readability and modularity, promoting reusability and maintainability throughout the development process.
|
|
|
|
Vue brings powerful features, such as Teleport, allowing components to render at any position on the page, and Fragment, which removes the requirement for a single root element in a template. Additionally, Vue delivers enhanced performance through Tree-Shaking, reducing bundle size and Compiler-informed Virtual DOM optimizations, leading to faster initial renders and updates while consuming less memory.
|