当前位置: 首页 > news >正文

学习vue3的笔记

一、vue和react的对比

1、基础介绍

vue:https://cn.vuejs.org/

vue3是2020年创建的

react:https://react.dev/

react是一个2013年开源的JavaScript库,严格意义上来说不是一个框架

2、diff算法

两个框架采用的都是同级对比策略

两节点对比时

对比时的不同策略

vue3策略:找出最长递增子序列,首尾对比直到不同停止

比如下图时cd不变把b放到cd后面

react:节点的索引对比,从左往右移动

二、搭建VUE3的开发环境+初始vue3

1、node环境安装:https://nodejs.org/en/down (选择18以上的版本)

2、开发编辑工具Vscode(Visual Studio Code):https://code.visualstudio.com/Download

3、安装谷歌浏览器

三、创建Vue3项目(cmd运行)

1、切换镜像源

npm config set registry https://registry.npmmirror.com/

2、安装pnpm

npm install -g pnpm

如果淘宝镜像在下载过程中不行就切换回来官方的镜像,然后再切换回来淘宝(淘宝的 npm 镜像源可能存在证书过期的问题。您可以尝试将 npm 源切换回官方的 npm 源,然后重新安装依赖。)

npm config set registry https://registry.npmjs.org

3、实际上使用npm没有下载成功pnpm,是下载了cnpm之后,再使用cnpm下载的pnpm

npm install -g cnpm --registry=https://registry.npmmirror.comcnpm install -g pnpm

4、使用pnpm创建vue3文件

pnpm create vite

5、使用pnpm安装文件的包

pnpm i

6、启动文件

pnpm run dev

四、文件运行中学习代码新的知识

1、<script setup>实现模块化

vue2是选项式,vue3是模块化

选项式需要暴露很多,比如data{return }之类的,setup不需要

之后的代码都是在setup的情况下写的:https://cn.vuejs.org/api/sfc-script-setup.html#script-setup

2、ref,响应式数据

vue2的数据是放在data,vue3用ref https://cn.vuejs.org/api/reactivity-core.html#ref

3、v-cloak

如果不是通过官方语句脚手架创建的vue文件,只是普通的html文件然后引入就会造成的现象,正常通过官方语句创建的vue文件不会

<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>

会造成数据还没初始化就已经渲染了,造成页面数据闪烁,加入v-cloak就不会:https://cn.vuejs.org/api/built-in-directives.html#v-cloak

4、nextTick

5、ref和reative的区别

https://cn.vuejs.org/api/reactivity-core.html#reactive

6、计算属性computed

https://cn.vuejs.org/api/reactivity-core.html#computed 和vue2的写法不一样

使用缓存,减少性能消耗

<script setup>
import { ref,computed } from 'vue';const list=ref({book:["语文","数学","英文"]
})const f=ref(0)
const l=ref(2)const listC=computed({get(){return f.value},set(newValue){[f.value,l.value]=newValue.split(" ")}})
listC.value='78'</script><template><div>是否也有书:</div><span>{{ listC }}</span>
</template>

使用computed是因为,如果模板更新,数据没有变化,可以直接拿computed的缓存数据不需要二次计算,如果直接写在模板会每一次刷新都会重新计算一次

http://www.lryc.cn/news/513847.html

相关文章:

  • MySQL UNION
  • day21-ubuntu入门
  • 开发小工具:ping地址
  • 在 Python 中使用 ADX 进行算法交易
  • Unity 3D 从入门到精通:开启游戏开发的奇幻之旅
  • 神经网络-VggNet
  • 用AI生成PPT,告别繁琐,一键生成高效方案
  • 基于 `android.accessibilityservice` 的 Android 无障碍服务深度解析
  • UE5材质节点Frac/Fmod
  • 【微服务】【Sentinel】认识Sentinel
  • Kafka 性能提升秘籍:涵盖配置、迁移与深度巡检的综合方案
  • 小程序租赁系统构建指南与市场机会分析
  • SOME/IP 协议详解——远程过程调用(RPC)
  • C++ 设计模式:命令模式(Command Pattern)
  • 安卓/system/bin下命令中文说明(AI)
  • MATLAB程序转C# WPF,dll集成,混合编程
  • 【SpringBoot3】Spring Boot 3.0 集成 Mybatis Plus
  • nvidia_gpu_exporter 显卡监控
  • WebSocket 的封装使用
  • SqlSession的线程安全问题源码分析
  • Java 8 及经典面试题全解析
  • MySQL:安装配置(完整教程)
  • Java - 日志体系_Apache Commons Logging(JCL)日志接口库_桥接Logback 及 源码分析
  • 高性能网络框架--fstack
  • Unity Mesh生成Cube
  • 2、pycharm常用快捷命令和配置【持续更新中】
  • Go语言方法和接收器类型详解
  • Flutter:打包apk,详细图文介绍(一)
  • Vue.js组件开发-实现动态切换菜单简单示例
  • 如何在 Ubuntu 22.04 上优化 Apache 以应对高流量网站教程