Vue 3.0 新特性体验

1、vue简介

Vue是一个“用于构建用户应用程序的渐进式框架”。 它的设计非常灵活,能够将各个Vue库合并到其他项目中,或者完全使用Vue为复杂项目提供动力。

Vue通常被视为更易于理解和易于实现的框架之一。 允许支持纯HTML模板,而像React这样的工具使用Javascript定义DOM元素。

2、 Vue 3.0中最大的变化

(1)Performance:性能更比Vue 2.0强。
(2)Tree shaking support:可以将无用模块“剪辑”,仅打包需要的。
(3)Composition API:组合API
(4)Fragment, Teleport, Suspense:“碎片”,Teleport即Protal传送门,“悬念”
(5)Better TypeScript support:更优秀的Ts支持
(6)Custom Renderer API:暴露了自定义渲染API。

3、升级方法

(1)升级cli,需要cli4.0

npm install -g @vue/cli

(2)初始化 vue 项目

vue create vue-next-demo

(3)升级 Vue 3.0 项目
目前创建 Vue 3.0 项目需要通过插件升级的方式来实现,
vue-cli 还没有直接支持,我们进入项目目录,并输入以下指令:

cd vue-next-demo
vue add vue-next

执行上述指令后,会自动安装 vue-cli-plugin-vue-next 插件(,该插件会完成以下操作:

.安装 Vue 3.0 依赖
.更新 Vue 3.0 webpack loader 配置,使其能够支持 .vue 文件构建
.创建 Vue 3.0 的模板代码
.自动将代码中的 Vue Router 和 Vuex 升级到 4.0 版本,如果未安装则不会升级
.自动生成 Vue Router 和 Vuex 模板代码
.完成上述操作后,项目正式升级到 Vue 3.0,

注意该插件还不能支持 typescript,用 typescript 的同学还得再等等。

4、特性变化

路由: createRouter 来创建 Vue Router 实例
vuex:Vuex.createStore来创建

示例:

<template>
  <div class="test">
    <h1>test count: {{count}}</h1>
    <div>count * 2 = {{doubleCount}}</div>
    <div>state from vuex {{a}}</div>
    <button @click="add">add</button>
  </div>
</template>

<script>
  import { ref, computed, watch, getCurrentInstance } from 'vue'

  export default {
    setup () {
      const count = ref(0)
      const add = () => {
        count.value++
      }
      watch(() => count.value, val => {
        console.log(`count is ${val}`)
      })
      const doubleCount = computed(() => count.value * 2)
      const { ctx } = getCurrentInstance()
      console.log(ctx.$router.currentRoute.value)
      const a = computed(() => ctx.$store.state.test.a)
      return {
        count,
        doubleCount,
        add,
        a
      }
    }
  }
</script>

5、总结:

(1)Vue 3.0 中初始化状态通过 setup 方法,以前的所有数据状态都写在data里;类似react组件结构;
(2)定义变量需要调用 ref 方法;
(3)通过 getCurrentInstance 方法获取当前组件的实例;
(4) You强调了Vue 3.0中的五个关键变化:
a.速度更快:内存使用量是Vue 2.0观察者的一半;
b.尺寸更小:约为10 kb gzipped;
c.可维护性:从Flow转向TypeScript ;
d.针对原生:与平台无关 - 意味着它将运行纯Javascript;
e.便于使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值