vue3【详解】vue3 比 vue2 升级了哪些重要的功能?

改用 createApp 初始化实例

vue2 使用 new Vue() 初始化实例
vue3 使用 Vue.createApp() 初始化实例

在这里插入图片描述
在这里插入图片描述

新增 emits 选项

vue3 选项式API中新增了emits 选项,用于显示声明组件中的自定义事件,自定义事件的名称,需用 on 开头。

export default {emits: ['onMyEvent1','onMyEvent2']
}

在 setup 中通过解构上下文可以获取自定义事件。

export default {emits: ['onInFocus', 'onSubmit'],setup(props, ctx) {ctx.emit('onSubmit')}
}

export default {emits: ['onInFocus', 'onSubmit'],setup(props, { emit }) {emit('onSubmit')}
}

新增模板片段 fragment

即 vue3 的模板支持多个根节点

在这里插入图片描述

vue2 的模板只能有一个根节点

在这里插入图片描述

移除数据双向绑定修饰符 .sync,改用 v-model:

在这里插入图片描述

vue2 的 .sync 功能可参考博客
https://blog.csdn.net/weixin_41192489/article/details/117360598

vue3 的 v-model 功能可参考博客
https://blog.csdn.net/weixin_41192489/article/details/137880927

改用 defineAsyncComponent 导入异步组

<script>
import { defineAsyncComponent } from 'vue'export default {components: {AdminPage: defineAsyncComponent(() =>import('./components/AdminPageComponent.vue'))}
}
</script><template><AdminPage />
</template>

原 vue2 的写法为

<script>
export default {components: {AdminPage: () => import('./components/AdminPageComponent.vue')}
}
</script><template><AdminPage />
</template>

移除 filter

vue2 中 filter 常用于格式化数据,如

{{ '2018-05-25T14:06:51.618Z' | datefmt }}
filters: {// input是自定义过滤器的默认参数,input的值永远都是取自于 | 左边的内容datefmt: function (input) {// 定义过滤器的内容:将input的值格式化成 yyyy-MM-dd 字符串输出input = new Date(input)let res;let year = input.getFullYear();let month = input.getMonth() + 1;let day = input.getDate();res = year + '-' + month + '-' + day;return res;}
},

页面显示效果

2018-5-25

新增内置组件 Teleport

用于将一个组件内部的一部分模板“传送”到该组件的 DOM 结构外层的位置去,常用于模态框的开发。

  <button @click="open = true">Open Modal</button><!-- 将模态框挂载到 body 标签上渲染,以便避免简化 css 样式,同时避免祖先组件样式的干扰 --><Teleport to="body"><div v-if="open" class="modal"><p>Hello from the modal!</p><button @click="open = false">Close</button></div></Teleport>

更多详情见官网

新增内置组件 Suspense

[实验性功能] 用于展示异步组件的状态,常和 <Transition><KeepAlive> 等组件结合使用

<RouterView v-slot="{ Component }"><template v-if="Component"><Transition mode="out-in"><KeepAlive><Suspense><!-- 主要内容 --><component :is="Component"></component><!-- 加载中状态 --><template #fallback>正在加载...</template></Suspense></KeepAlive></Transition></template>
</RouterView>

更多详情见官网

新增 Composition API (组合式 API)

响应式状态声明 ref, reactive

https://blog.csdn.net/weixin_41192489/article/details/138234529

readonly

创建只读代理

  • 可访问,不能修改
  • 源改变时,只读代理也会同步改变
const original = reactive({ count: 0 })const copy = readonly(original)watchEffect(() => {// 用来做响应性追踪console.log(copy.count)
})// 更改源属性会触发其依赖的侦听器
original.count++// 更改该只读副本将会失败,并会得到一个警告
copy.count++ // warning!

watch和watchEffect

https://blog.csdn.net/weixin_41192489/article/details/137930356

setup

组合式 API 的入口
https://cn.vuejs.org/api/composition-api-setup.html#composition-api-setup

生命周期钩子

https://blog.csdn.net/weixin_41192489/article/details/137813685

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

链表(基于C语言单向链表)

链表的实现的思想 链表表示一种是基于链接结构的线性表&#xff0c;链表实现的思想如下&#xff1a; 1、将表中的元素分别储存在一批独立的储存块里面。 2、表结构中的结点都能找到与之相关的下一个结点。 3、在前一个结点里用链表的方式显示的记录与下个结点之间的关联。 链…

Facebook的声音:听见社交媒体的心跳

社交媒体如今已经成为人们日常生活中不可或缺的一部分&#xff0c;而Facebook作为其中的佼佼者&#xff0c;承载着数以亿计的用户的交流、分享和连接。在这个信息爆炸的时代&#xff0c;Facebook的声音就像是社交媒体的心跳&#xff0c;传递着无数个体的情感、思想和生活。本文…

【数据结构】三、栈和队列:2.顺序栈共享栈(顺序栈的初始化,判空,进栈,出栈,读取栈顶,顺序栈实例)

文章目录 1.顺序栈1.1初始化1.2判空1.3进栈1.4出栈1.5读取栈顶1.6销毁栈❗1.7顺序栈c实例 2.共享栈2.1初始化2.2判满 1.顺序栈 用顺序存储实现的栈 顺序栈的缺点&#xff1a;栈的大小不可变。 #define MaxSize 10 //定义栈中元素的最大个数 typedef struct{ElemType data[…

如何把为知笔记导入到Notion笔记里面

&#x1f4a1; 大家好&#xff0c;我是可夫小子&#xff0c;《小白玩转ChatGPT》专栏作者&#xff0c;关注AIGC、读书和自媒体。 为知笔记并不开放&#xff0c;笔记文件只能以pdf或者图片的方向导出来&#xff0c;无法与其他笔记文件相互导入导出&#xff0c;然而&#xff0c;稍…

【QT学习】13.使用TCP实现文件传输

一。传输文件流程 二。实现 结果&#xff1a; 1. server server类属性 Ui::Widget *ui;QTcpServer* pTcpServer;QTcpSocket* pTcpSocket;//文件与文件信息QFile file;QString m_fileName;qint64 m_fileSize; //整个文件大小qint64 fileSize; //当前已经发送的文件大小bool …

巅峰之战·成长之美丨 纷享销客中南战区伙伴同行者大会圆满成功

近日&#xff0c;为期2天的纷享销客中南战区伙伴同行者大会在北京成功举行&#xff0c;从全国各地奔赴而来的渠道伙伴共襄盛举。大会以”巅峰之战成长之美“为主题&#xff0c;共同探讨”双向奔赴 、健康经营、赢盈共进“的发展之道。 一、数智赋能&#xff0c;任重道远 纷享销…

第三方软件测试机构的优势

软件测试机构在软件开发和验收过程中扮演着至关重要的角色&#xff0c;其优势主要体现在以下几个方面&#xff1a; 专业性&#xff1a;软件测试机构通常拥有专业的测试团队&#xff0c;这些团队成员具备丰富的测试经验和深厚的专业知识&#xff0c;能够准确识别软件中的潜在问…

新唐的nuc980/nuc972的开发1-环境和源码同步

开发环境安装 1.1更新源 服务器端&#xff1a;可以参考&#xff1a;Linux替换清华源_更改清华源-CSDN博客 下面是桌面端的方法&#xff1a; 打开系统的软件中心&#xff0c;选择自己想要使用的源 更新缓存 1.2安装必须的库 apt-get install patch apt-get install libc6-dev …

微信机器人openai免注册信用卡生成api

简介 chatgpt-on-wechat (cow) 项目是使用 ChatGPT 搭建的智能聊天机器人&#xff0c;在GPT3.5/4.0 API 及 itchat框架的基础上实现&#xff0c;支持微信公众号、企业微信、钉钉、飞书部署&#xff0c;能生成文本、语音和图片&#xff0c;访问操作系统和互联网。 最新版本支持…

【Qt之·控件·样式表】

系列文章目录 文章目录 前言一、Qt样式表的基础知识1.1 Qt样式表的定义和语法规则1.2 Qt样式表中的选择器和属性1.2.1 盒子模型1.2.2 border 1.3 Qt样式表中的伪类和伪元素 二、编写基本的Qt样式表2.1 在Qt应用程序中引入样式表文件的方式2.2 设置基本的背景色、字体样式等 三、…

大数据中的项目数据采集

Datax介绍 官网&#xff1a; DataX/introduction.md at master alibaba/DataX GitHub DataX 是阿里云 DataWorks数据集成 的开源版本&#xff0c;在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。 DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS…

源码篇--Nacos服务--中章(8):Nacos服务端感知客户端实例变更-3

文章目录 前言一、客户端实例变更&#xff1a;二、实例变更感知&#xff1a;2.1 实例注册信息通知&#xff1a;2.1.1 接收DistroDataRequest 请求&#xff1a;2.1.2 onReceive 处理请求&#xff1a;2.1.3 processData 处理请求&#xff1a;2.1.4 handlerClientSyncData 处理数据…