创建Vue3.0项目,对比Vue2.0改变了什么?

542 阅读3分钟

0.安装

0.1Vue CLI

对于Vue3.0需要用到4.5版本以上的 Vue CLI才能安装 检查版本Vue CLI命令

vue --version

安装Vue CLI命令

npm install -g @vue/cli

0.2脚手架创建Vue3.0项目

vue create 项目名 选择版本号,上下键做选择,这里选的自定义

在这里插入图片描述

选择需要的预置,按空格键选择,按a切换全部,i全不选

在这里插入图片描述

选择需要的版本号

在这里插入图片描述

路由器使用历史记录模式?(需要适当的服务器设置,以便在生产中进行索引回退)

在这里插入图片描述

编码风格根据个人习惯选择

在这里插入图片描述

选择在什么时间进行检测,保存时或提交时

在这里插入图片描述

 包的配置选择单独存放一个文件

在这里插入图片描述

是否以后都是这样的配置?

在这里插入图片描述

1.简述Vue3.0

Vue3.0的语法可以完全使用Vue2.0,根据尤雨溪所述,Vue3.0主要改的是底层,比如: javascript变更为typescript, Object.defineProperty变更为proxy, webpack变更为vite(目前不是特别稳定), 还添加了组合式(composition)API等 【Web前端会客厅】Vue之父尤雨溪深度解读Vue3.0的开发思路

2.对比Vue2.0变更

2.1App.vue

支持多个根元素

在这里插入图片描述

2.2proxy

深入vue2响应式原理,在对象或数组新增属性无响应解决方法 在vue2使用数组/对象无响应性问题得到解决

<template>
  <div class="index">{{ user }}</div>
  <div class="index">{{ hobby }}</div>
  <button @click="setAge">按钮</button>
</template>

<script>
export default {
  data() {
    return {
      user: {
        name: "山竹",
      },
      hobby: ["看书", "羽毛球", "旅游"],
    };
  },
  methods: {
    setAge() {
      this.user.age = 18; //新增对象属性
      //  this.hobby.splice(下标,添加,修改的值)
      this.hobby.splice(1, 1, "羽毛球修改了"); //修改数组
    },
  },
};
</script>

效果 在这里插入图片描述

2.3Composition API(组合API)

  • 专业版:通过创建 Vue 组件,我们可以将接口的可重复部分及其功能提取到可重用的代码段中。仅此一项就可以使我们的应用程序在可维护性和灵活性方面走得更远。然而,我们的经验已经证明,光靠这一点可能是不够的,尤其是当你的应用程序变得非常大的时候——想想几百个组件。在处理如此大的应用程序时,共享和重用代码变得尤为重要。
  • 设计动机 1.维护大型项目的时候,特别是在阅读他人代码时,uptionAPI会把完整的逻辑切割到不同选项,导致阅读苦难
    2,组件公共代码,需要进行代码复用,vue2.0会出现比较困难的情况,例如mixin
    3.为了以后使用ts实现更好的类型推断
  • 口水版不是非要使用这种模式,只是这种模式对于处理复杂项目比较有用,但如果没处理好那代码会变得很糟糕,还不如用以前uptionsAPI. 模板部分还是跟以前一样,作用的只是script部分的写法不同. setup相当以前data的角色,用reactive声明响应 取消this,用暴露的对象指向当前方法

官网:www.vue3js.cn/docs/zh/api…

在这里插入图片描述

<template>
  <div class="index">
    <div>
      <!-- addState方法单个增加 -->
      {{ state.count }}
    </div>
    <div>
      <!-- dobuleCount计算属性乘2增加 -->
      {{ state.dobuleCount }}
    </div>
    <!-- 单击增加一位 -->
    <button @click="addState">点击</button>
  </div>
</template>

<script>
// 通过组合API实现逻辑
// reactive方法用于定义响应性数据
import { onMounted, computed, reactive } from "vue";
export default {
  setup() {
    const state = reactive({
      count: 0,
      // 计算属性:方法 定义函数
      dobuleCount: computed(() => state.count * 2),
    });
    // 定义方法function 函数名({})
    function addState() {
      state.count++;
    }
    // 钩子函数
    onMounted(() => {
      console.log("mounted!");
    });
    // 暴露
    return { state, addState };
  },
};
</script>

效果

在这里插入图片描述

vite

尤雨溪介绍说写了个新的编译器叫vite,启动速度比webpack快,做到按需编译,而webpack需要编译一千多个包时间相对就比较慢.
但目前还在开发,生态也不够成熟,默认模式还是以webpack进行打包.
Vite 是一个由原生 ESM 驱动的 Web 开发构建工具。在开发环境下基于浏览器原生ESModule开发,在生产环境下基于 Rollup 打包。
它主要具有以下特点:

  • 快速的冷启动
  • 即时的模块热更新
  • 真正的按需编译

下载安装:www.vue3js.cn/docs/zh/gui…