张天禹_vue3

01 - 开篇

  • reactive有什么局限性;
  • watch在实际开发中面临的五种情况;

02 - 简介

image-20240427122857097

image-20240427122904969

性能好了;

速度快了;

更加优秀了;

vue3;

截止2023年10月份,最新版本是3.3.4;



image-20240427123044523

image-20240427123059853

image-20240427123110457

03 - 创建vue3工程

vue-cli是基于webpack实现的;

image-20240427123245230


image-20240427123309441

在前端圈子当中,webpack属于大哥级别的构建工具;

vue官方又写了一个构建工具,vite;

java的maven有点类似前端的npm;

vite构建速度比webpack要快;


如果使用webpack架构一个东西,路由特别多,模块特别多,启动是非常慢的;

vite一上来就server ready;

webpack是不管你看什么,上来是都分析,都处理,都bundle,最后是server ready;

vite的特点是上来就server ready,然后看你看什么东西,如果你看的是其中的两个路由,那么vite就立刻处理给你看;

vite构建有点像是懒加载;

jsx就是js和结构混着写的一种语法,react当中会使用的;


image-20240427125140660

image-20240427125155436

运行什么命令,可以创建基于vite的vue项目呢?

npm create vue@latest


image-20240427131157520

我设置完成代理之后,再次执行命令就成功了。


image-20240427131538626

上面是张天禹创建的过程;

下面是我创建的过程;

npm create vue@latest比vue-cli要快很多的;

vue插件

image-20240427162838677

上面安装的插件中typescript vue plugin volar这个插件,已经被删除了;

image-20240427162958969

目录介绍

  • public下面是页签图标
    • 服务器的根路径有几种情况,几种形式?这个先不聊;

env.d.ts

image-20240427163557541

env.d.ts文件的作用是什么呢?

在ts当中是不认识.jpg、.txt这种文件的;

env.d.ts的作用就是让ts认识这些文件;


image-20240427163729759

创建了一个a.ts,创建了一个b.txt,然后在a.ts当中写出来上面的代码,发现飘红的,就说明了,它是不认识b.txt的;

image-20240427163926316


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

image-20240427164959299

  • createApp(App).mount(‘#app’);
    • createApp就是创建应用,就是花盆;
    • App就是一个组件,就是种花的根基;
    • 你写的所有的组件,都是安装App组件这个根基上;
      • 有的时候是直接安装的;在App.vue当中直接安装的;
      • 有的时候是间接的;就是通过路由渲染出来的;
    • 以后我们写的.vue都是花的枝叶;
  • createApp(App),是创建一个应用,然后传入进入一个根组件
    • .mount(‘#app’),这个是挂载的意思,就是挂载到id为app的容器当中的意思;

App.vue

根组件

components

直接翻译过来就是组件;

assets

都是一些固有的css,还有一些svg就是图片;

export

  • 默认暴露
  • 分别暴露
  • 统一暴露

image-20240427171016934

写一个简单的组件

<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,使用代码片段;

image-20240427172620058

张天禹是从极简插件这个地方下载的vue.devtools等;

image-20240427173029846

image-20240427173051586

image-20240427173059943

image-20240427173205877

加点功能

image-20240427173925425

结论

在vue3当中是可以写vue2的语法的;

06 - OptionsAPI 与 CompositionAPI

image-20240427174127935

数据我们写在data当中,方法写在methods当中;

是不是,不管什么数据,只要是组件要使用的数据,我们都可以在data当中编写的呢?

是不是,不管什么方法,只要是组件要使用的方法,我们都可以在methods当中编写的呢?

这个东西,就是叫做选项式API

选项式API

image-20240427174342887

name、data、methods就是选项或者配置项;

学习vue2就是学习这些配置项;

这些东西写多了,就会出现问题?

选项式API有什么问题呢?

image-20240427174458014

image-20240427175204230

你实现一个功能A的时候,要在data、methods、computed当中进行编写;

如果我们想要修改功能A的数据,我们要去一点一点寻找的;

image-20240427175135548

options api就是将功能拆散了;

composition api就是将功能合并了;

compositions api

image-20240427175600910

07 - setup概述

image-20240427180030383

vue3当中有很多组合式api,就是composition api;这些东西都是要写在setup当中的;

学习vue3的第一步,就是要学习setup的;

vue3的小升级

vue2当中下面的写法是不允许的,就是你不可以写多个根标签;

但是在vue3当中,你是可以写多个根标签的;

image-20240427180345417

注意

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

如果你是按照上面的方式,直接这样写数据的话,那么它不是响应式的;

响应式的意思就是,你修改了数据,页面的数据也是会跟着修改的;

选项式api当中的数据,在setup当中数据都是直接定义的,方法都是直接写函数的;

setup函数执行的时机, 是最早的;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值