Vue3全家桶 - Vue3 - 【1】前置准备和介绍(VsCode插件 + 组合式API和选项式API的比较)

news2024/11/19 19:25:59

一、前言

  • Vue2.7是当前、同时也是最后一个 Vue2.x 的次级版本更新。Vue2.7 会以其发布日期,即2022年7月1日开始计算,提供18个月的长期技术支持。在此期间,Vue2将会提供必要的bug修复和安全修复。但不再提供新特性。
  • Vue2的终止支持时间是2023年12月31日。在此之后,Vue2在已经已有的分发渠道中仍然可以使用,但不再进行更新,包括对安全问题和浏览器兼容性问题的修复等。
  • 学习 Vue3 已经是不可避免的了,不管从自身技术提升还是公司项目技术选型来看。
  • 后续会慢慢补充各种东西,包括一些在项目中遇到的问题或代码的一些简化写法。
  • 插件的选择:
    • Vue3:
      • image.png
    • Vue2:
      • image.png
    • 两个插件不能同时启用。
    • 禁用 Vue2 的插件之后,可能没法生成基本代码了,这块可以自己配置一下:
    • 详细见VScode 配置 vue2 / vue3 基本模板 代码;
  • 给孩子点点关注吧!😭
    image.png

二、简介

2.1 MVVM工作原理

  • MVVM指的是 ModelViewViewModel
    • Model:页面渲染 用到的 数据源
    • View:页面 所渲染 的 DOM结构
    • ViewModel:表示 Vue实例
  • image.png
  • 当数据源发生变化时,会被 VM 监听到,VM会根据最新的数据源自动更新页面的结构;
  • 当表单元素的值发生变化时,也会被VM监听到,VM会把变化后最新的值自动同步到Model数据源中。

2.2 Vue3项目的创建

  • 可以去看我的另一篇文章《从 0~1 创建 Vue3 + JS 项目》

2.3 组合式API / 选项式API

  • 可以去看看官网上面的两种API;
  • 组合式API:
    • Vue3全家桶笔记中大部分是组合式API(在Vue3中我还是喜欢组合式),选项式API比较少(选项式写法和Vue2类似,只是有些方法不同);
    • 通过组合式API,我们可以使用导入的API函数来描述组件逻辑;
    • 在单文件组件中,组合式API通常会与<script setup>搭配使用(后面会讲到这个 setup 语法糖);
    • 这个 setup 属性是一个标识,告诉Vue需要在编译时进行一些处理,让我们可以更简洁地使用组合式API;
    • <script setup> 中导入的 顶层变量 和 函数 都能够在 模板中 直接使用
  • 选项式API:
    • 参考Vue2全家桶笔记。
    • Vue2的语法(写法很类似,有些方法不一样),在Vue3中也是支持的;
    • 使用选项式API,我们可以用包含多个选项的对象来描述组件的逻辑,例如datamethodsmounted
    • 选项所定义的属性都会暴露在函数内部的this上,它会指向当前的组件实例;
  • 在Vue3中使用组合式API的注意点:
    • 如果在 组合式API 中直接声明 普通变量 的数据源,他们并 不具备响应式
      • 🔺注意:
        • 可以正常显示在页面上;
        • 视图改变会触发数据的更新(手动改变输入框的值,Vue中的数据会发生变化);
        • 但数据的更新并不会同步到视图中(点击按钮的时候,数据会发生变化,但是不会同步到视图上);
      • image.png
      • 视图数据更新之后,有时候需要点击devtools面板的刷新按钮(有些版本的需要点击刷新按钮才能看到结果);
      • App.vue中的代码:
        <script setup>
        // 普通变量的数据源(基本数据类型),不具备响应式
        let account = 123456
        
        // 不同变量的数据源(引用数据类型),不具备响应式
        let obj = {
          age: 22
        }
        
        function changeAccount() {
          account++
        }
        
        function changeAge() {
          obj.age++
        }
        </script>
        
        <template>
          <div>
            <input type="text" v-model="account">
            <button @click="account++"> 在 template 中使用 account </button>
            <button @click="changeAccount"> 在 script 中使用 account </button>
            <br>
            <hr>
            <input type="text" v-model="obj.age">
            <button @click="obj.age++"> 在 template 中使用 account </button>
            <button @click="changeAge"> 在 script 中使用 account </button>
          </div>
        </template>
        
    • 演示效果:e3f45a65-b8f2-4803-aa9d-2282afdeb4f8.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1514442.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++ 有边数限制的最短路 Bellman_ford算法(带负权边)

给定一个 n 个点 m 条边的有向图&#xff0c;图中可能存在重边和自环&#xff0c; 边权可能为负数。 请你求出从 1 号点到 n 号点的最多经过 k 条边的最短距离&#xff0c;如果无法从 1 号点走到 n 号点&#xff0c;输出 impossible。 注意&#xff1a;图中可能 存在负权回路…

算法刷题Day4 | 24. 两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题 02.07. 链表相交、142.环形链表II

目录 0 引言1 两两交换链表中的节点1.1 我的解题1.2 注意事项 2 删除链表的倒数第N个节点2.1 我的代码2.2 报错原因分析 3 链表相交3.1 我的解题 4 环形链表II4.1 我的解题 &#x1f64b;‍♂️ 作者&#xff1a;海码007&#x1f4dc; 专栏&#xff1a;算法专栏&#x1f4a5; 标…

10个让你事半功倍的工作效率技巧,让你成为高效率的现代人!

作为现代人&#xff0c;我们每天都在面对各种各样的任务和工作&#xff0c;有时候会因为繁忙而感到力不从心&#xff0c;导致效率变得非常低下。所以&#xff0c;在这篇文章中&#xff0c;我将分享10个能够帮助你提高工作效率的技巧&#xff0c;让你的工作事半功倍。 1. 制定计…

labview中6种机械动作的区别

1.单击时转换&#xff1a;单击时转换&#xff0c;需要手动转换或者赋值回复原来状态&#xff1b; 2.释放时转换&#xff1a;释放时时转换&#xff0c;需要手动转换或者赋值回复原来状态&#xff1b; 3.单击时转换保持到鼠标释放&#xff1a;触发两次&#xff0c;自动恢复原来状…

ppocr ERROR: When parsing line KeyError: None

训练百度飞桨 paddleOCR模型。 数据集没有问题&#xff0c;但报以上错误。 发现是手欠&#xff0c;多按了下回车&#xff0c;多了个 - 删掉就好了。

map和set的介绍和使用

文章目录 map和set关联式容器键值对set介绍模板参数 map介绍模板参数为什么map支持下标访问 multiset介绍 multimap map和set 关联式容器 我们在之前讲过STL的一些基础容器&#xff0c;例如vector&#xff0c;list&#xff0c;deque&#xff0c;forward_list等 这些其实统一…

Script标签中 defer 和 async 属性的区别

script 标签中 defer & async 属性 如果我们注意过 html 中的 <script> 标签&#xff0c;就会发现在有的加载 JavaScript 文件的 <script src"https://code.jquery.com/jquery-3.7.1.min.js" defer></script>这里就探讨一下 script 标签上的…

[AutoSar]BSW_Com013 CAN TP 模块配置

目录 关键词平台说明一、缩写对照表二、Functional Description&#xff08;vector&#xff09;2.1 Asynchronous and Synchronous behavior of CanTp_Transmit2.1.1 asynchronous 2.1.2 synchronous2.2 Separation Time by Application 三、CanTpChannels3.1 接收端3.2 发送端…

【Web】浅聊Java反序列化之C3P0——URLClassLoader利用

目录 前言 C3P0介绍 回归本源——序列化的条件 利用链 利用链分析 入口——PoolBackedDataSourceBase#readObject 拨云见日——PoolBackedDataSourceBase#writeObject 综合分析 EXP 前言 这条链最让我眼前一亮的就是对Serializable接口的有无进行了一个玩&#xff0c…

day42 动态规划part4

先遍历物品还是先遍历背包二刷再考虑吧。累了&#xff0c;不想停留太久。 背包问题 二维 &#xff08;卡码网题目&#xff09; 各种解释&#xff1a; 要理解的是这个表格每一个格子都是当前所处情况的最大价值&#xff0c;我们用已经推导出的最大价值来推导当前情况的最大价值…

2.案例、鼠标时间类型、事件对象参数

案例 注册事件 <!-- //disabled默认情况用户不能点击 --><input type"button" value"我已阅读用户协议(5)" disabled><script>// 分析&#xff1a;// 1.修改标签中的文字内容// 2.定时器// 3.修改标签的disabled属性// 4.清除定时器// …

GUROBI之数学启发式算法Matheuristics

参考运小筹的帖子&#xff1a;优化求解器 | Gurobi 数学启发式算法&#xff1a;参数类型与案例实现 - 知乎 (zhihu.com) 简言之&#xff0c;数学启发式是算法就是数学规划和启发式算法的融合&#xff0c;与元启发式算法相比&#xff0c;数学启发式算法具有更强的理论性。 在GUR…

WEB区块链开发组件 - KLineChart

当我们开发区块链的时候&#xff0c;实现K线可能大家会想到EChart&#xff0c;但是EChart做可能需要耗费大量工作量&#xff0c;实现出来的功能估计也是牵强着用。 这时候&#xff0c;我们可能网上会搜索到TradingView,可是这个组件虽然功能非常强大&#xff0c;但是还是要费事…

视觉图像处理和FPGA实现第三次作业--实现一个加法器模块

一、adder模块 module adder(ina, inb, outa); input [5:0] ina ; input [5:0] inb ; output [6:0] outa ;assign outa ina inb; endmodule二、add模块 module add(a,b,c,d,e); input [5:0] a ; input [5:0] b ; input [5:…

Matlab R2021a安装教程(附带免费安装包)

作者&#xff1a;翟天保Steven 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 Matlab简介 Matlab是一种高级技术计算语言和交互式环境&#xff0c;用于算法开发、数据可视化和数值计算。它集成了数学、工程和科…

unity中实现场景跳转

1&#xff0c;第一步创建2个场景&#xff08;右键资源窗口&#xff0c;名字这里我取的1111和2222&#xff09; 2.添加跳转按钮&#xff08;双击其中一个场景并添加按钮&#xff09; 3.编辑按钮的文字&#xff08;将原本的按钮打开点击里面的text&#xff0c;就可以在右边编辑文…

MySQL 多种日期处理函数介绍

MySQL 提供了多种日期处理函数&#xff0c;用于处理和操作日期和时间数据。这些函数可以帮助你执行如日期计算、时间转换、格式化输出等操作。以下是一些常用的 MySQL 日期处理函数及其用法&#xff1a; 日期和时间格式化函数 1. **DATE_FORMAT()**&#xff1a;将日期或时间戳格…

AI壁纸号一周增加上千粉丝,轻松变现的成功案例分享

前言 随着AI绘画技术的发展&#xff0c;传统的互联网副业壁纸号在新的技术加持下迎来了第二春。本文将分享一位壁纸号创作者的成功案例&#xff0c;并为大家提供创作门槛和硬件要求等相关信息。 该项目的创作门槛极低&#xff0c;基本上可以由AI完成内容创作。不过&#xff0…

使用python实现一个dicom影像解析入库程序demo

简介 DICOM&#xff08;Digital Imaging and Communications in Medicine&#xff09;是医学图像和相关信息的国际标准。它定义了医学影像的格式和通信协议&#xff0c;使得不同设备和系统之间可以交换和共享医学图像和相关数据&#xff0c;如CT扫描、MRI图像、超声波图像等。…

代码随想录算法训练营第七天| 454.四数相加II、383.赎金信、15.三数之和、18.四数之和

系列文章目录 目录 系列文章目录454.四数相加II使用HashMap法 383.赎金信哈希解法&#xff08;数组&#xff09; 15.三数之和双指针法 18.四数之和双指针法 454.四数相加II 题解&#xff1a;该题和1.两数之和的方法是一样的&#xff0c;这个题的难点在于key和value分别是什么。…