Vite 是一个 web 开发构建工具,由于其原生 ES 模块导入方法,它允许快速提供代码。
通过在终端中运行以下命令,可以使用 Vite 快速构建 Vue 项目。
$ npm init vite-app <project-name> $ cd <project-name> $ npm install $ npm run dev
或者 yarn:
$ yarn create vite-app <project-name> $ cd <project-name> $ yarn $ yarn dev
运行完成后会得到一个如下结构的文件
在该文件夹下执行 npm run dev
会得到如图所示地址,在启动时可以明显的感觉到项目的启动速度非常快,基本做到秒开,输入地址得到如下页面
在 packafe.json 中可以看到采用的是 vite 启动方法,同时 vue 版本是 3.0.4,说明这个项目是基于 vue3.0 的
在main.js 中可以看到采用了 createApp 函数来挂载整个实例,这里和 vue2.0 是不同的
至此,我们就可以在这个项目中编写 vue3.0 代码了,这里附上一个小 Demo,此Demo中用到了computed,onMounted,onUnmounted,reactive,ref,toRefs,watch,
<template> <h1>{{ msg }}</h1> <button @click="count++">count is: {{ count }}</button> <p>{{ counter }}</p> <p>{{ doubleCounter }}</p> <button @click="clearTimer">暂停计时器</button> <p ref="tagP">11</p> </template> <script> import { computed, onMounted, onUnmounted, reactive, ref, toRefs, watch, } from "vue"; export default { props: ["msg"], setup() { // ref 只能声明普通值类型 const count = ref(0); // 声明定时器 let timer = ref(null); // 解构 toRefs 后的数据不会丢失响应式 const { counter, doubleCounter } = useCounter(timer); // 获取元素 const tagP = useTagp(counter); // 暂停方法 const clearTimer = () => { useClearTime(timer); }; return { count, counter, doubleCounter, clearTimer, tagP, }; }, }; // 计算属性 function useCounter(timer) { // reactive 声明引用类型 const data = reactive({ counter: 1, doubleCounter: computed(() => data.counter * 2), }); // 页面加载触发 onMounted(() => { timer.value = setInterval(() => { data.counter++; }, 1000); }); // 页面销毁 onUnmounted(() => { clearInterval(timer.value); }); // 使用 toRefs 可以将 reactive 类型 装换为 ref 单个值类型,并且解构不会丢失响应式 return toRefs(data); } // 获取页面元素并且改变值 function useTagp(counter) { const tagP = ref(null); watch(counter, (val, oldVal) => { tagP.value.innerHTML = `from ${oldVal} to ${val}`; }); return tagP; } // 清除定时器 function useClearTime(timer) { clearInterval(timer.value); } </script>