文章目录
01 - 开篇
- reactive有什么局限性;
- watch在实际开发中面临的五种情况;
02 - 简介
性能好了;
速度快了;
更加优秀了;
vue3;
截止2023年10月份,最新版本是3.3.4;
03 - 创建vue3工程
vue-cli是基于webpack实现的;
在前端圈子当中,webpack属于大哥级别的构建工具;
vue官方又写了一个构建工具,vite;
java的maven有点类似前端的npm;
vite构建速度比webpack要快;
如果使用webpack架构一个东西,路由特别多,模块特别多,启动是非常慢的;
vite一上来就server ready;
webpack是不管你看什么,上来是都分析,都处理,都bundle,最后是server ready;
vite的特点是上来就server ready,然后看你看什么东西,如果你看的是其中的两个路由,那么vite就立刻处理给你看;
vite构建有点像是懒加载;
jsx就是js和结构混着写的一种语法,react当中会使用的;
运行什么命令,可以创建基于vite的vue项目呢?
npm create vue@latest
我设置完成代理之后,再次执行命令就成功了。
上面是张天禹创建的过程;
下面是我创建的过程;
npm create vue@latest比vue-cli要快很多的;
vue插件
上面安装的插件中typescript vue plugin volar这个插件,已经被删除了;
目录介绍
- public下面是页签图标
- 服务器的根路径有几种情况,几种形式?这个先不聊;
env.d.ts
env.d.ts文件的作用是什么呢?
在ts当中是不认识.jpg、.txt这种文件的;
env.d.ts的作用就是让ts认识这些文件;
创建了一个a.ts,创建了一个b.txt,然后在a.ts当中写出来上面的代码,发现飘红的,就说明了,它是不认识b.txt的;
index.html
webpack的入口文件一般式main.js或者main.ts,但是vite的入口文件是index.html;
readme.md
这个东西不需要,直接删除就可以了;
tsconfig.app.json - tsconfig.json - tsconfig.node.json
这三个东西,简单说,就是ts的配置文件;
不用动它就可以了;
不能够删除;
vite.config.ts
这个是整个工程的配置文件;
这个东西可以安装插件;
也可以配置一些代理;
ctrl+c停掉脚手架;
04 - 编写app组件
- index.html是入口文件:引入main.ts
- main.ts
main.ts
- createApp(App).mount(‘#app’);
- createApp就是创建应用,就是花盆;
- App就是一个组件,就是种花的根基;
- 你写的所有的组件,都是安装App组件这个根基上;
- 有的时候是直接安装的;在App.vue当中直接安装的;
- 有的时候是间接的;就是通过路由渲染出来的;
- 以后我们写的.vue都是花的枝叶;
- createApp(App),是创建一个应用,然后传入进入一个
根组件
;- .mount(‘#app’),这个是挂载的意思,就是挂载到id为app的容器当中的意思;
App.vue
根组件
components
直接翻译过来就是组件;
assets
都是一些固有的css,还有一些svg就是图片;
export
- 默认暴露
- 分别暴露
- 统一暴露
写一个简单的组件
<template>
<div class="app">
<h1>克拉拉</h1>
</div>
</template>
<script lang="ts">
export default {
name: 'App' // 组件名字
}
</script>
<style>
.app {
background-color: #4377ce;
box-shadow: 0 0 10px;
border-radius: 10px;
padding: 20px;
}
</style>
05 - 一个简单的效果
参考这里设置webstorm的live templates,使用代码片段;
张天禹是从极简插件这个地方下载的vue.devtools等;
加点功能
结论
在vue3当中是可以写vue2的语法的;
06 - OptionsAPI 与 CompositionAPI
数据我们写在data当中,方法写在methods当中;
是不是,不管什么数据,只要是组件要使用的数据,我们都可以在data当中编写的呢?
是不是,不管什么方法,只要是组件要使用的方法,我们都可以在methods当中编写的呢?
这个东西,就是叫做选项式API;
选项式API
name、data、methods就是选项或者配置项;
学习vue2就是学习这些配置项;
这些东西写多了,就会出现问题?
选项式API有什么问题呢?
你实现一个功能A的时候,要在data、methods、computed当中进行编写;
如果我们想要修改功能A的数据,我们要去一点一点寻找的;
options api就是将功能拆散了;
composition api就是将功能合并了;
compositions api
07 - setup概述
vue3当中有很多组合式api,就是composition api;这些东西都是要写在setup当中的;
学习vue3的第一步,就是要学习setup的;
vue3的小升级
vue2当中下面的写法是不允许的,就是你不可以写多个根标签;
但是在vue3当中,你是可以写多个根标签的;
注意
如果你是按照上面的方式,直接这样写数据的话,那么它不是响应式的;
响应式的意思就是,你修改了数据,页面的数据也是会跟着修改的;
选项式api当中的数据,在setup当中数据都是直接定义的,方法都是直接写函数的;
setup函数执行的时机, 是最早的;