Vue3新特性全面剖析

一款框架诞生需要的阶段

查看版本: npm view vue versions

  • 开发
  • alpha版:内部测试版 α
  • beta版:公开测试版 β
  • rc版:Release Candidate(候选版本)
  • stable版:稳定版

npm i vue@lasted:下载的是vue2

  • vue2
  • vuex3
  • vue-router3
  • element-ui 2

npm i vue@next:下载的是vue3

  • vue3
  • vuex4
  • vue-router4
  • element-plus 1
  • npm i vuex@next vue-router@next element-plus

vue3的安装使用

  • 一、安装vue3:npm i vue@next
  • 二、安装vue3版本的项目
  • 三、安装vue-router、vuex
  • 四、安装less@3、less-loader@7
  • 五、配置vue.config.js,与vue2相同

vue3与vue2的十大区别

  • 版本号不同
  • 引用的vuex/vue-router版本不同
  • vue3的APP.vue的《template》 中支持多个根节点

区别一:==vue3中推崇使用函数式编程==:各种创建实例,都调用函数来创建,我们从vue中解构出各种各样的函数来使用 

区别二.Performance [pəˈfɔːməns]

  • 重写了虚拟DOM的实现(跳过静态节点,只处理动态节点)
  • update性能提高1.3~2倍
  • SSR速度提高了2~3倍

区别三:Tree shaking [ˈʃeɪkɪŋ] 可以将无用模块“剪辑”,仅打包需要的)【webpack新版本的】

区别四 Fragment ['frægmənt] 不再限于模板中的单个根节点[文档碎片]

区别五 <Teleport> [ˈtelɪpɔːt] 以前称为<Portal> [ˈpɔːtl],译作传送门,可以把组件内部的部分内容挂载到除#app的容器中(<Teleport to="#fotter">),

  <div id="app"></div>
  <div id="footer"></div>
 <Teleport to="#footer"> 你好,世界</Teleport>

区别六<Suspense> [səˈspens]可在嵌套层级中等待嵌套的异步依赖项,嵌套一个异步组件,可以在获取到数据之前加载loading效果

父组件------------------
<template>
  <Suspense>
    <template #default><AsyncComponent></AsyncComponent></template>
    <template #fallback>loading.....</template>
  </Suspense>
</template>

<script>
import AsyncComponent from "./AsyncComponent.vue";
export default {
  name: "App",
  components: {
    AsyncComponent,
  },
};
</script>
子组件--------------------------
<template>
  <div>{
  
  { msg }}</div>
</template>

<script>
import { defineComponent } from "vue";
const query = () => {
  return new Promise((resolve) => {
    setTimeout(() => {
      resolve("我是异步组件");
    }, 2000);
  });
};
export default defineComponent({
  async setup() {
    let msg = await query();
    return {
      msg,
    };
  },
});
</script>

区别七:TypeScript更好的TypeScript支持

区别八:vue3支持把组件中的某些内容以图形的方式绘制到canvas画布上(Custom Renderer API自定义渲染器API)Apache ECharts 

  • 自定义渲染器API
  • 用户可以尝试WebGL自定义渲染器

区别九:vue3使用的Composition API:(Composition API聚合API):vue2遵循options API,vue3遵循Composition API

options API:数据根据功能划分到data、methods、computed、watch区域(分散式API)

Composition API:vue3中所有的数据方法都放到了setup()方法中,全部组合到了一起,没有细分(聚合式API)

  • 组合式API,替换原有的 Options [ˈɒpʃnz] API
  • 根据逻辑相关性组织代码,提高可读性和可维护性
  • 更好的重用逻辑代码(避免mixins混入时命名冲突的问题)
  • 但是依然可以延用 Options [ˈɒpʃnz] API

区别十:vue3中的响应式数据

劫持,基于Proxy实现的==:vue3中的响应式数据劫持,不再基于vue2的Object.defineProperty(),而是基于ES6内置的Proxy:但是不兼容IE

define

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端 贾公子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值