vue3相比于vue2有哪些新特性?

Composition API:

组合式 API 提供了更灵活和可组合的方式来组织代码。它允许将逻辑功能集中在一起,而不是分散在生命周期钩子中。

dart 复制代码
import { ref, reactive, computed, watch } from 'vue';

export default {
  setup() {
    const count = ref(0);
    const state = reactive({ message: 'Hello' });

    function increment() {
      count.value++;
    }

    const doubleCount = computed(() => count.value * 2);

    watch(count, (newVal, oldVal) => {
      console.log(`count changed from ${oldVal} to ${newVal}`);
    });

    return { count, state, increment, doubleCount };
  }
};

Teleport:

Teleport 允许将组件的模板部分渲染到 DOM 树的其他位置,而不依赖于组件层次结构。

dart 复制代码
<template>
  <teleport to="body">
    <div class="modal">This is a modal</div>
  </teleport>
</template>

Fragments:

Vue 3 支持组件返回多个根节点,这意味着你不再需要包裹多个元素在单一的根元素内。

dart 复制代码
<template>
  <div>First element</div>
  <div>Second element</div>
</template>

Emits Option:

emits 选项明确列出了组件可以触发的事件,有助于事件的类型检查。

dart 复制代码
export default {
  emits: ['update'],
  setup(props, { emit }) {
    function updateValue() {
      emit('update', newValue);
    }
    return { updateValue };
  }
};

Better TypeScript Support:

Vue 3 从一开始就设计为更好地支持 TypeScript,提供了更好的类型推断和类型检查。

Improved Performance:

Vue 3 使用了 Proxy 代替 Vue 2 中的 Object.defineProperty,提供了更好的性能和更少的限制。

Composition API with Reactivity:

提供了更细粒度的 reactivity 和更灵活的 state management。

dart 复制代码
import { reactive, toRefs } from 'vue';

export default {
  setup() {
    const state = reactive({
      count: 0,
      message: 'Hello'
    });

    return {
      ...toRefs(state)
    };
  }
};

New Lifecycle Hooks:

新的生命周期钩子,如 onBeforeMount、onMounted、onBeforeUpdate、onUpdated、onBeforeUnmount 和 onUnmounted,提供了更细粒度的控制。

新特性使得 Vue 3 比 Vue 2 更加灵活、高效且易于维护。

相关推荐
WYiQIU5 分钟前
普及一下字节前端岗需要达到的强度......
前端·javascript·vue.js·面试·职场和发展
Leweslyh20 分钟前
【实战】如何在家定位国际空间站 (ISS)? —— 坐标转换的魔法 (例题 5.9)
开发语言·javascript·ecmascript
帆张芳显22 分钟前
智表zcell产品V3.5 版发布,新增行列选中操作等功能
前端·javascript·excel·插件·canva可画
苦藤新鸡1 小时前
27.合并有序链表,串葫芦
前端·javascript·链表
_OP_CHEN1 小时前
【前端开发之HTML】(四)HTML 标签进阶:表格、表单、布局全掌握,从新手到实战高手!
前端·javascript·css·html·html5·网页开发·html标签
谢尔登1 小时前
Vue3底层原理——keep-alive
javascript·vue.js·ecmascript
Deca~1 小时前
VueVirtualLazyTree-支持懒加载的虚拟树
前端·javascript·vue.js
2501_944526421 小时前
Flutter for OpenHarmony 万能游戏库App实战 - 主题切换实现
android·开发语言·javascript·python·flutter·游戏·django
爱上妖精的尾巴1 小时前
7-11 WPS JS宏 对象的属性值为函数的写法与用法
前端·javascript·wps·js宏·jsa
爱上妖精的尾巴1 小时前
7-12 WPS JS宏 this、return用构造函数自定义类-1:对象内部函数,外部调用的写法
前端·javascript·wps·js宏·jsa