vue2与vue3有什么区别?

2023-11-02

今天要说的vue3基本兼容我们所熟悉的vue2代码。

一、两者基本的不同点。

1.vue3固然是优点多多的,其3个主要的优点有:

(1)按需引用;

(2)组合式api:更加接近原生js,更加直观;

(3)vue3新增的set up中没有this,也就是说vue3更有效地降低了代码地耦合性。

2.vue3地启动方式:

var app=createApp(App);
app.use(router).use(store)
.mount("#app")

3.vue3全局方法定义:

app.config.globalProperties.$mysay = function(msg){alert(msg+"你好")}

4.set up 组合 api中,ref:定义值类型数据,reactive:定义引用类型数据;旧的选项型API在代码里分割了不同的属性: data,computed属性,methods,等等。新的合成型API能让我们用方法(function)来分割,相比于旧的API使用属性来分组,这样代码会更加简便和整洁

import{ref,reactive}from 'vue'
set(){
const num =ref(5);
const list = reactive(["vue","react","angular"])
		return {num,list};
},

5.相对于vue2.x,vue3使用peoxy的优势如下:

  1. defineProperty只能监听某个属性,不能对全对象监听;
  2. 可以省去for in、闭包等内容来提升效率(直接绑定整个对象即可);
  3. 可以监听数组,不用再去单独的对数组做特异性操作 vue3.x可以检测到数组内部数据的变化

6.生命周期钩子变化很大,其中beforeCreate和created都被删除,直接使用setup(),即开始创建组件之前,在beforeCreate和created之前执行,剩下的基本都是在最前面加了个on,如下:

beforeMount   -> onBeforeMount,组件挂载到节点上之前执行的函数。
mounted       -> onMounted,组件挂载完成后执行的函数。
beforeUpdate  -> onBeforeUpdate,组件更新之前执行的函数。
updated       -> onUpdated,组件更新完成之后执行的函数。
beforeDestroy -> onBeforeUnmount,组件卸载之前执行的函数。
destroyed     -> onUnmounted,组件卸载完成后执行的函数
7.父子传参不同

1、setup 函数时,它将接受两个参数:(props、context(包含attrs、slots、emit))

2、setup函数是处于生命周期函数 beforeCreate 和 Created 两个钩子函数之前的函数

3、与模板一起使用:需要返回一个对象 (注意:在setup函数中定义的变量和方法最后都是需要 return 出去的 不然无法再模板中使用)

4、使用渲染函数:可以返回一个渲染函数,该函数可以直接使用在同一作用域中声明的响应式状态。

二、实例应用

首先我们在views中创建一个js文件,js文件代码如下:

//定义一个函数
import {ref,onMounted} from 'vue'
function reverseText(){
	//建议一个dom引用对象
	const reverseRef = ref(null);
	onMounted(()=>{
		//reverseRef.value就是 引用的dom
		reverseRef.value.onclick = function(){
			//获取dom文本
			var msg = reverseRef.value.innerText;
			//翻转文本
			msg = msg.split('').reverse().join('');
			//赋值给dom
			reverseRef.value.innerText = msg;
		}	
	})
	//返回dom引用对象
	return reverseRef;
}

然后再任意views中的vue文件(我直接再about中写了)中引用,代码如下:

<template>
  <div class="about">
    <h1 ref="elem">This is an about page</h1>
	<h1 ref="el">我是关于</h1>
  </div>
</template>
<script>
	//导入reverseText
	import {reverseText} from './utils.js'
	export default{
		// 引用一个组件,单击哪个,文本翻转
		setup(props,ctx){
			const elem = reverseText();
			const el = reverseText();
			return {elem,el};
		}
	}
</script>

注意,一定要记得导出。

以上是用vue3写的一个文字翻转效果,效果如下:

 

 今天的vue3先到这里,大家可以先掌握基本的用法,vue3较于vue2的变化还有很多,这些不同大家先多多吸收。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue2与vue3有什么区别? 的相关文章

  • 从 HTTP 登录到 HTTPS

    我的网站默认使用 HTTP 我确实有一个启用 HTTPS 的证书 但只有其上的某些区域强制建立安全连接 登录是通过 Ajax 处理的 我想开始使用 SSL 即使请求来自 HTTP 我尝试强制请求的地址具有 HTTPS 并且它完美地回复 然而
  • 两列表:一列尽可能小,另一列占据其余部分

    我在 div 中有一个 to columns 表 div table tbody tr td class action a a td td class content p Bigger text variable size p td tr
  • 删除 IE9 边缘周围的 2px 灰色边框

    我正在尝试对这个网站进行编码 尝试关键字 并且我正在尝试找出如何删除这个阴影2px灰色边框延伸到 IE9 窗口的内部 至少顶部 左侧和底部 我的边距设置为零 因此所有页面元素都到达页面的最边缘 但使用 IE9 它们会停在这个灰色边框处 我没
  • 如何使用 Greasemonkey 监视静态 HTML 页面的更改?使用哈希?

    我希望我的 Greasemonkey 脚本仅在其访问的静态页面具有与以前完全相同的内容时运行 现在我可以设置一个包含该页面哈希的变量 我正在寻找一种动态散列页面的方法 以便我可以将我的散列与生成的散列进行比较 关于如何即时实现散列的任何想法
  • javascript 选择自定义光标 (svg)

    我正在动态地将光标更改为悬停时的本地 svg element on mouseover function this css cursor url svgs pointer svg 9 30 auto 工作正常 但我想选择该 svg 来操纵其
  • React Router v4 不渲染组件

    React Router v4 渲染组件存在问题 在应用程序初始加载时 它将呈现与 URL 相对应的正确组件 但是 任何后续的组件Link单击不会呈现所需的组件 图书馆 反应路由器 4 2 2 https reacttraining com
  • JavaScript推送函数中的动态变量

    我在 JavaScript 中使用推送功能 var chartData for var i 0 i lt 3 i chartData push date new Date year s mon s date s hr s min s sec
  • 如何在另一个自定义 Hook 中使用返回值的自定义 Hook?

    我正在使用 React native 其中有一个名为的自定义 HookuseUser使用以下方法从 AWS Amplify 获取用户信息Auth getUserInfro方法 然后获取返回对象的一部分并用它设置一个状态变量 我还有另一个名为
  • mongodb 聚合 - 累积字段的不同组值

    如果我有Player表格文件 name String score Int 我有Group文档 其中组代表玩家列表 groupName String players ObjectID 玩家可以属于多个组 我想做一个聚合Player文档 按以下
  • 如何停止TinyMCE删除span标签?

    在我的工作中 前一位程序员决定使用公司网站上精彩的TinyMCE 我遇到的数千个问题之一是 如果原文有的话span标签 当我按下退格键删除一行 p仅标签 全部span标签已从文本中删除 这个错误比另一个错误更具体 我可以删除anything
  • JavaScript eval("{}") 返回行为?

    根据ECMA 262 规范 http www ecma international org publications files ECMA ST Ecma 262 pdf 以下语句返回1 eval 1 eval 1 eval 1 var a
  • 聆听 Angular 2 中的元素可见性

    我正在为我的网络应用程序使用 Bootstrap 和 Angular 2 v4 我想监听指令中的元素以了解可见性变化 我的元素有一个可以隐藏其子元素的父元素hidden sm up我需要在每次隐藏或显示时触发一个函数 div hidden
  • 使用 Javascript 设置 cookie [重复]

    这个问题在这里已经有答案了 我正在尝试构建我的第一个移动应用程序 它需要连接到我的 mysql 数据库并使用 json 返回数据 这很好 目前我有一个登录系统 一旦确定用户名和密码存在 它就会返回一条成功消息 对于下一步 我想在我的页面上使
  • 用于选择特定 div 中具有特定类的锚元素的 jQuery 选择器是什么

    我有一些这样的代码 我想选择每个 a 带有类的标签status在 div 中foo div a class status a div 你可以这样做 foo find status a
  • 如何使用 JavaScript 或 jQuery 克隆 HTML 元素的样式对象?

    我正在尝试克隆元素的样式对象 这应该允许我在更改后重置所述元素的样式 例如 el style left 50px curr style left 50px Modify the elements style The cloned style
  • 使用 Jade 评估自定义 javascript 方法 (CircularJSON)

    我想通过 Jade 将一个对象解析为客户端 JavaScript 通常这会起作用 script var object JSON parse JSON stringify object but my object is circular ht
  • 从 PHP 数组生成 HTML 表

    我不明白这一点 我需要解决看似简单的问题 但这超出了我的逻辑 我需要编写一个函数 table columns input cols 它将输出一个表 示例 input array apple orange monkey potato chee
  • 使用 next.js 进行服务器端渲染与传统 SSR

    我非常习惯 SSR 意味着页面得到完全刷新并从服务器接收完整 HTML 的方法 其中根据后端堆栈使用 razor pub other 进行渲染 因此 每次用户单击导航链接时 它只会向服务器发送请求 整个页面将刷新 接收新的 HTML 这就是
  • 滚动顶部不符合预期

    Note 由于上次忘记奖励而重新开放赏金 A Woff 大师已经给出答案 我想在用户展开某一行时到达该行 这样当最后一个可见行展开时 用户不必向下滚动即可查看内容 I used example tbody on click td green
  • 如何通过索引访问 JSON 对象中的字段

    我知道这不是最好的方法 但我别无选择 我必须通过索引访问 JSONObject 中的项目 访问对象的标准方法是只写this objectName or this objectName 我还找到了一种获取 json 对象内所有字段的方法 fo

随机推荐

  • 什么是透明、匿名、高匿代理?详解!

    随着大数据的应用越来越广泛 应用的行业也越来越多 我们每日都可以看到大数据的一些新颖的应用 从而帮助人们从中获取到真正有用的价值 随着很多工作的开展 我们需要大量的IP操作 这时为了避免IP被封 使用代理IP是个很好的选择 而IP代理按匿名
  • IDEA+Gradle创建Springboot项目整合mybatis

    1 之前用的maven管理项目 现在公司用gradle 所以自己学习创建一个 特此记录一下 前提是你得配置了gradle 1 首先是build gradle文件 buildscript ext springBootVersion 2 1 2
  • Axios使用AbortController取消请求

    从 v0 22 0 开始 Axios 支持以 fetch API 方式 AbortController 取消请求 const controller new AbortController axios get foo bar1 signal
  • VBA怎么获取单元格的内容/值(数字,文本,公式)(如需获取选中单元格内容,使用select命令即可)

    通过本地窗口可以清晰看出三者的区别 记得按 F8 走调试 直接运行本地窗口在这里出不来结果 Value是单元格的数字内容 Text是文本内容 Formula是最原本的 输入内容 Sub 宏3 测试 就不去定义变量类型了 a Range b1
  • 大语言模型生态系统:助你自由调教 AI 模型

    这些开源项目都是在语言模型领域具有重要影响力的优秀项目 它们共同的特点是强调了对大规模语言模型进行训练和推理的高效性 灵活性和可扩展性 无论是通过提供定制化的语言模型 支持并行计算和分布式训练 还是通过优化内存管理和硬件资源利用效率来提高运
  • Java import 详解

    Java import 详解 1 package 机制 Java 的 package 机制类似于 C 的 namespace 机制 在编写 Java 程序时 随着程序架构越来越大 类的个数也越来越多 这时就会发现管理程序中维护类名称也是一件
  • el-form-item rules validator validate函数传参

    validator只能传3个参数 rule value cb 如果想传入额外的参数来做校验 那么需要通过在rules上嵌套一层 传入参数 如row 之后在函数中定义validator 就可以直接用到自己需要的参数了 我这边需要的是row 校
  • Android Studio apk 文件路径

    out production
  • java实现图片与base64转换

    如果你是一个软件开发 不论前端后端工程师 图片的处理你是肯定要会的 关于图片的Base64编码 你可能有点陌生 但是这是一个软件工程师应该要掌握的知识点 现在很多网友把图片与base64转换都做成了小工具如 http www yzcopen
  • Android 使用OpenCV的三种方式(Android Studio)

    其实最早接触OpenCV是很久很久之前的事了 大概在2013年的5 6月份 当时还是个菜逼 虽然现在也是个菜逼 在那一段时间 学了一段时间的android 并不算学 一个月都不到 之后再也没接触android 而是一直在接触java web
  • linux常见报错种类

    说起来日常的故障 其实 首先应该相到的就是 备份 毕竟再怎么牢固的系统或硬件都会有故障的时候 所以 备份放第一位 作为linux运维 多多少少会碰见这样那样的问题或故障 从中总结经验 查找问题 汇总并分析故障的原因 这是一个Linux运维工
  • [春秋云镜]CVE-2022-22733

    声明 中所涉及的技术 思路和 具仅供以安全为 的的学习交流使 任何 不得将其 于 法 途以及盈利等 的 否则后果 承担 所有渗透都需获取授权 靶场介绍 Apache ShardingSphere ElasticJob UI由于返回 toke
  • Kali 2020.1版本 更新不能解析域名问题解决

    Kali 2020 1版本 更新不能解析域名问题解决 问题阐述 解决方法 1 添加DNS解析服务器的ip地址 2 重启 3 kali联网即可更新
  • IC工程师入门必学《Verilog超详细教程》(附下载)

    Verilog HDL 简称 Verilog 是一种硬件描述语言 用于数字电路的系统设计 可对算法级 门级 开关级等多种抽象设计层次进行建模 Verilog 继承了 C 语言的多种操作符和结构 与另一种硬件描述语言 VHDL 相比 语法不是
  • 用U盘给虚拟机装系统——U深度

    下载一个u深度 将要安装的系统镜像放进 重装系统 创建虚拟机 按shift 修改位如下所示 按fn f10确认 选择第二个 进行磁盘分区 开始装机 完成后关机并把启动时间修改回去 如果拔出U盘后出现以下情况 把新添加的硬盘移除即可
  • 北京的三甲医院都是定点医院吗?不列入医保卡范围不能报销?

    北京有19家三甲医院看病 用医保卡实时报销 其他的三甲医院需要在蓝本上定点后 才能报销 1 中国医学科学院北京协和医院 2 首都医科大学附属北京同仁医院 3 首都医科大学宣武医院 4 首都医科大学附属北京友谊医院 5 北京大学第一医院 6
  • 不错的在线视频下载软件

    发现了一款非常好的下载在线视频软件 而且可以跨浏览器使用 它几乎支持所有的web浏览器 如IE Chrome Firefox Opera Safari等浏览器 支持Youtube Youku Ku6 6间房 凤凰卫视视频网等在线视频网站的视
  • 破解世界数学难题!GPT-4 得出P≠NP

    Datawhale干货 编辑 陈萍 来源 机器之心 这是对 LLM for Science 一次有希望的探索 对于身处科研领域的人来说 或多或少的都听到过 P NP 问题 该问题被克雷数学研究所收录在千禧年大奖难题中 里面有七大难题 大家熟
  • 一些关于CV和deeplearning的干货链接(长期更新)

    目录 yolo系列汇总 关于batch normalization的理解 各类归一化方法的总结及代码 YJango的卷积神经网络介绍 目标检测SSD讲解 关于AP PR曲线计算的理解 内附代码 生肉 英文 解释了yolov3的forward
  • vue2与vue3有什么区别?

    今天要说的vue3基本兼容我们所熟悉的vue2代码 一 两者基本的不同点 1 vue3固然是优点多多的 其3个主要的优点有 1 按需引用 2 组合式api 更加接近原生js 更加直观 3 vue3新增的set up中没有this 也就是说v