Vue3新特性API

一、vue3介绍

vue3.0是在2.0的基础上重大优化调整后的升级版本,其响应式原理已经在vue2框架基础中介绍过,此文章重点介绍Vue 3 中一些新功能API及其使用,文章内容来源于Vue3API。包括:

  • 组合式 API
  • Emits 组件选项
  • 单文件组件组合式 API 语法糖 (<script setup></code>)</li><li>单文件组件状态驱动的 CSS 变量 (<code><style></code> 中的 <code>v-bind</code>)</li><li>SFC <code><style scoped></code> 现在可以包含全局规则或只针对插槽内容的规则</li></ul><p><strong>二、组合式 API</strong></p><p>通过创建 Vue 组件,我们可以将界面中重复的部分连同其功能一起提取为可重用的代码段,可以大大提高应用可维护性和灵活性。然而经验证明,光靠这一点可能并不够,处理大型应用时,共享和重用代码变得尤为重要。假设我们的应用中有一个显示某个列表的视图。此外,我们还希望有搜索和筛选功能。在vue2中使用 (<code>data</code>、<code>computed</code>、<code>methods</code>、<code>watch</code>) 组件选项来组织逻辑通常都很有效,但是当我们的组件开始变得更大时,同一Vue页面的逻辑关注点也会增多,对于没有编写这些组件的人来说,这会导致组件难以阅读和理解。如果能够将同一个逻辑关注点相关代码收集在一起将能使开发人员更容易阅读和理解,这就是组合式 API 的设计思想。</p><p>如何使用组合式API? 这里需要使用vue3的一个组件选项setup,<code>setup</code> 选项是一个接收 <code>props</code> 和 <code>context</code> 的函数,setup() 函数在组件创建 created() 之前执行。<code>setup</code> 返回的所有内容都暴露给组件的其余部分 (计算属性、方法、生命周期钩子等等) 以及组件的模板。我们将在vue2中<code>data</code>、<code>computed</code>、<code>methods</code>、<code>watch组件选项中书写的代码全部集中到setup函数中去,然后把需要给外部使用的变量或函数通过返回值方式返回,这就是vue3的组合api思想。例如如下:</code></p><p><strong>三、应用配置</strong></p><p>每个 Vue 应用都会暴露一个包含其配置项的 <code>config</code> 对象,在挂载应用之前,你可以修改下列 property,代码示例如下:</p><p><strong>四、应用API</strong></p><p>在 Vue 3 中,全局改变 Vue 行为的 API 现在被移动到了由新的 <code>createApp</code> 方法所创建的应用实例上,现在它们的影响仅限于该特定应用实例。调用 <code>createApp</code> 返回一个应用实例。该实例提供了一个应用上下文。应用实例挂载的整个组件树共享相同的上下文,该上下文提供了之前在 Vue 2.x 中的"全局"配置。由于 <code>createApp</code> 方法返回应用实例本身,因此可以在其后链式调用其它方法,这些方法如下:</p><p><strong>五、全局API</strong></p><p>如果你使用的是 CDN 构建版本,那么全局 API 可以通过全局对象 <code>Vue</code> 来访问,使用方式举例如下:</p><p><strong>六、选项式 API</strong></p><p><strong>七、生命周期钩子</strong></p><p>所有生命周期钩子的 <code>this</code> 上下文将自动绑定至实例中,因此你可以访问 data、computed 和 methods。这意味着你不应该使用箭头函数来定义一个生命周期方法 (例如 <code>created: () => this.fetchTodos()</code>)。因为箭头函数绑定了父级上下文,所以 <code>this</code> 不会指向预期的组件实例,并且<code>this.fetchTodos</code> 将会是 undefined。</p><p><strong>八、单文件组件</strong></p><p class="node-read-div2p"><code>*.vue</code> 文件是使用类 HTML 语法来描述 Vue 组件的一种自定义文件格式。每一个 <code>*.vue</code> 文件都由三种类型的顶层语法块所组成:<code><template>、<code><script></code>、<code><style></code> 以及可选的附加自定义块。常用规范说明如下:</p></script>

Original: https://www.cnblogs.com/zqhIndex/p/16496272.html
Author: 我若安好,便是晴天
Title: Vue3新特性API

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/612419/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • AQS源码探究之竞争锁资源

    AQS源码探究—竞争锁资源 我们进入ReentrantLock源码中查看其内部类 Sync 对AQS进行扩展公共方法并定义抽象方法的抽象类 FaireSync 实现公平…

    数据库 2023年6月11日
    074
  • 版本控制gitlab

    版本控制gitlab 版本控制gitlab 什么是版本控制gitlab gitlab部署 什么是版本控制gitlab GitLab 是一个用于仓库管理系统的开源项目,使用Git作为…

    数据库 2023年6月14日
    077
  • 数据结构知识详解 第一章 绪论

    知识框架 1. 数据结构的基本概念 1.1 基本概念和术语 1.1.1 数据 定义:是信息的载体,是描述客观事实属性的数、字符及所有能输入到计算机中并被计算机程序识别和处理的符号的…

    数据库 2023年6月11日
    067
  • GreatSQL vs MySQL性能测试来了,速围观~

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。 GreatSQL是MySQL的国产分支版本,使用上与MySQL一致。 1.结论先行 无论ibp(inn…

    数据库 2023年6月11日
    080
  • null调整为not null default xxx,不得不注意的坑

    最近碰到一个case,值得分享一下。 现象 一个DDL,将列的属性从null调整为not null default xxx, alter table slowtech.t1 mod…

    数据库 2023年6月11日
    0101
  • Linux 磁盘挂载

    具体操作是: 1.先对磁盘进行格式化; 挂载磁盘到需要的挂载点; 3.添加分区启动表 1、首先查看系统中磁盘信息 命令为:fdisk -l 2、格式化要挂载的磁盘 格式化命令为:m…

    数据库 2023年6月14日
    0142
  • Mybatis-Plus一键生成代码

    Mybatis-Plus一键生成代码 一、闲言碎语 闲来无事看了看了MP的官网看到一键生成的代码更新了! 整个Ui风格都变了,遂决定瞅一眼新的代码生成器 官网地址~~ 二、引入依赖…

    数据库 2023年5月24日
    062
  • CentOS服务器的网络配置与部署

    1.系统安装与软件安装 1.1选择CentOs7.9release版本用作所研发系统部署服务器,官网以及所选择镜像为地址为:http://ftp.sjtu.edu.cn/cento…

    数据库 2023年6月6日
    077
  • Git 误删本地代码恢复

    先复习一下本地 git 的三个区域着急的老哥可以直接冲恢复误删文件和总结 本地 git 的面貌 如图(向廖雪峰老师借的图,0.0)所示,本地有三块区域,工作区、暂存区(stage)…

    数据库 2023年6月9日
    081
  • Django点击图片缩放

    参考信息 用 zoom.js 给博客园中博文的图片添加单击时弹出放大效果:https://www.cnblogs.com/mingc/p/7446492.html 使用 1. 下载…

    数据库 2023年6月9日
    078
  • java企业官网源码 自适应响应式 freemarker 静态引擎 模块设计方案

    系统设计: 1.网站后台采用主流的 SSM 框架 jsp JSTL,网站后台采用freemaker静态化模版引擎生成html 2.因为是生成的html,所以访问速度快,轻便,对服务…

    数据库 2023年6月6日
    0282
  • 用Python做一个中秋抢购月饼的脚本

    ; 序言 每逢佳节倍思亲,想买个东西给家里,结果发现手速不够,网速不够快,没有时间下单等等各种原因导致最后想买的东西售罄了… 甚至跟你一起抢购的可能是脚本,太真实了! …

    数据库 2023年6月14日
    090
  • 设计模式在业务系统中的应用

    本文的重点在于说明工作中所使用的设计模式,为了能够更好的理解设计模式,首先简单介绍一下业务场景。使用设计模式,可以简化代码、提高扩展性、可维护性和复用性。有哪些设计模式,这里就不再…

    数据库 2023年6月14日
    068
  • python_Xpath入门

    下面列出了最有用的路径表达式: 表达式 nodename 选取此节点的所有子节点。 从根节点选取。 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。 选取当前节点。 选取…

    数据库 2023年6月11日
    061
  • SpringBoot邮件报警

    SpringBoot邮件报警 一、介绍 邮件报警,大体思路就是收集服务器发生的异常发送到邮箱,做到服务器出问题第一时间知道,当然要是不关注邮箱当我没说 (1)、引入依赖 <d…

    数据库 2023年6月6日
    0103
  • Tomcat总体架构(二)

    目录 八、PipeLine 和 Valve 九、Connector 十、Executor 十一、Bootstrap 和 Catalina 十二、组件总结 N、结束 视频 八、Pip…

    数据库 2023年6月11日
    0100
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球