vue选项式API和组合式API区别-备忘

Vue.js 的选项式API和组合式API是两种不同的编写Vue组件的方式,它们各自有不同的特点和适用场景:

选项式API (Options API)

这是 Vue.js 最初的API设计方式,也是最为广泛使用的编程模型。在选项式API中,一个Vue组件由一系列可选的选项组成,如 datapropsmethodscomputedwatch 等。这些选项在组件的定义对象中以属性的形式列出。

例如:

export default {props: {message: String},data() {return {localMessage: 'Hello from component'}},computed: {combinedMessage() {return this.message + ' ' + this.localMessage;}},methods: {greet() {console.log(this.combinedMessage);}},mounted() {this.greet();}
}

组合式API (Composition API)

Vue 3 引入的新编程模式,它允许开发者以更加灵活和可复用的方式组织组件的逻辑。组合式API的核心是 setup 函数,该函数接收两个参数 propscontext,并在函数内部通过 refreactivecomputedwatch 等函数来声明和管理组件的状态和行为。

例如:

import { ref, computed, onMounted } from 'vue';export default {props: {message: String},setup(props) {const localMessage = ref('Hello from component');const combinedMessage = computed(() => {return props.message + ' ' + localMessage.value;});function greet() {console.log(combinedMessage.value);}onMounted(greet);return {localMessage,greet};}
}

区别:

  • 模块性与复用性:组合式API通过函数式的编程方式使得逻辑片段更容易提取和复用,特别是在大型应用中。

  • 代码组织:在选项式API中,状态和方法分布在不同的选项中,而组合式API将所有逻辑集中在一个 setup 函数中,可以根据逻辑相关性自由组织代码。

  • 响应式API:组合式API提供了更精细的响应式控制,如 refreactive,可以直接在JavaScript表达式中使用 .value 来访问响应式变量的值。

  • 作用域:在组合式API中,可以直接在 setup 函数中访问 propscontext,而不需要 this 关键字。

  • 生命周期钩子:组合式API使用 onMountedonUpdatedonBeforeUnmount 等新的生命周期钩子函数替代原有的 mountedupdatedbeforeDestroy 等选项。

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

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

相关文章

【MySQL | 第四篇】区分SQL语句的书写和执行顺序

文章目录 4.区分SQL语句的书写和执行顺序4.1书写顺序4.2执行顺序4.3总结4.4扩充&#xff1a;辨别having与where的异同&#xff1f;4.5聚合查询 4.区分SQL语句的书写和执行顺序 注意&#xff1a;SQL 语句的书写顺序与执行顺序不是一致的 4.1书写顺序 SELECT <字段名> …

点赞功能真的有必要上 Redis 吗?(Mongo、MySQL、Redis、MQ 实测性能对比)

目录 一、你会怎么设计一个点赞功能&#xff1f; 1.1、点赞实现思路 1.2、点赞功能设计 1.2.1、MySQL 单表 1.2.2、单表 MySQL 关联表 1.2.3、MySQL 关联表 mq 1.2.4、redis mq 1.2.5、mongodb 关联文档 二、性能测试 2.1、前置说明 2.2、10 万数据准备 一、你会…

kubectl基础命令详解

管理名称空间资源 查看名称空间 [rootceshi-130 conf]# kubectl get ns [rootceshi-130 conf]# kubectl get namespace NAME STATUS AGE default Active 7d17h kube-node-lease Active 7d17h kube-public Active 7d17h kube-system …

【C++】三大特性之继承

1 继承的概念及定义 1.1 继承的概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段&#xff0c;它允许程序员在保持原有类特性的基础上进行扩展、增加功能&#xff0c;这样产生新的类&#xff0c;称派生类&#xff08;或子类&#xff09;。而被继承的…

Java宝典-抽象类和接口

目录 1. 抽象类1.1 抽象类的概念1.2 抽象类的语法1.3 抽象类的特点 2. 接口2.1 接口的概念2.2 接口的语法2.3 接口的特点2.4 实现多个接口2.5 接口的继承 3. 接口使用案例 铁汁们好,今天我们学习抽象类和接口~ 1. 抽象类 1.1 抽象类的概念 什么是抽象类?在面向对象中,如果一…

FIT介绍-1

1、编译 FIT image 文件的编译过程很简单&#xff0c;根据实际情况&#xff0c;编写image source file之后&#xff08;假设名称为u-boot.its&#xff09;&#xff0c;在命令行使用mkimage工具编译即可&#xff1a; ./tools/mkimage [-D dtc_options] [-f fit-image.its|-f a…

OpenFeign的学习总结

1.Fegin调用只有在微服务之间才会使用&#xff0c;以前的单体项目用不到&#xff0c;因为单体项目不会涉及到分库的概念&#xff0c;并且单体项目就一个应用&#xff0c;想用的功能都可以直接方法调用&#xff0c;但是微服务就不行&#xff0c;跨服务的调用只能通过http的操作&…

Google浏览器122.下载驱动

打开网址&#xff1a;Chrome for Testing availability (googlechromelabs.github.io) 选择stable 选择对应的驱动就行

flink重温笔记(十四): flink 高级特性和新特性(3)——数据类型及 Avro 序列化

Flink学习笔记 前言&#xff1a;今天是学习 flink 的第 14 天啦&#xff01;学习了 flink 高级特性和新特性之数据类型及 avro 序列化&#xff0c;主要是解决大数据领域数据规范化写入和规范化读取的问题&#xff0c;avro 数据结构可以节约存储空间&#xff0c;本文中结合企业真…

JVM运行时数据区概述以及分别存放的内容

JVM的运行时数据区是JVM在执行Java程序时用于存储数据和状态信息的内存区域。它分为多个部分&#xff0c;每个部分都有其特定的作用和存放的内容。 1. 方法区&#xff08;Method Area&#xff09; 作用&#xff1a;方法区是所有线程共享的内存区域&#xff0c;用于存放已被虚…

Java面试题总结9:mybatis

mybatis的优缺点 优点&#xff1a; 基于SQL语句编程&#xff0c;不会对应用程序或者数据库的现有设计造成任何影响&#xff0c;SQL写在XML里&#xff0c;解除sql与程序代码的耦合&#xff0c;便于统一管理&#xff0c;提供XML标签&#xff0c;支持编写动态SQL语句&#xff0c…

开源向量数据库介绍

在开源矢量数据库的世界里&#xff0c;有些名字因其性能、灵活性和健壮性而脱颖而出。 1. Milvus Milvus 由 Zilliz 推出&#xff0c;是一款高度可定制的开源矢量数据库&#xff0c;在处理大规模数据方面大放异彩。由于其出色的可扩展性&#xff0c;当你需要处理大量数据时&a…

判断链表回文

题目&#xff1a; //方法一&#xff0c;空间复杂度O(n) class Solution { public:bool isPalindrome(ListNode* head) {vector<int> nums; //放进数组后用双指针判断ListNode* cur head;while(cur){nums.emplace_back(cur->val);cur cur->next;}for(int i0…

如何在非spring环境中调用service中的方法

什么是非spring环境 非Spring环境指的是不使用Spring框架来管理和配置应用程序的运行时环境。在Spring框架中&#xff0c;开发者可以利用依赖注入、面向切面编程&#xff08;AOP&#xff09;、事务管理、安全性、数据访问等特性来简化企业级应用程序的开发。当应用程序不依赖于…

力扣同类题:重排链表

很明显做过一次 class Solution { public:void reorderList(ListNode* head) {if(!head||!head->next)return;ListNode *fasthead,*lowhead;ListNode *prenullptr,*curnullptr,*nextnullptr;while(fast->next!nullptr){fastfast->next;if(fast->next)fastfast->…

深入理解操作系统Operator System(2)

目录 操作系统对上的管理 系统调用接口 用户操作接口&#xff08;库函数&#xff09; 系统调用和库函数的概念 结构层次示意图 总结 为什么要有操作系统❓ 上次主要介绍了操作系统的"管理"和操作系统对下的管理。本篇主要是对上的管理。 操作系统对上的管理 …

04-ESP32S3-GPIO

ESP32S3-IDF GPIO GPIO简介 ESP32S3提供了多达45个物理GPIO管脚&#xff0c;这些管脚不仅可以作为通用的输入输出接口&#xff0c;还可以连接到内部外设信号。通过GPIO交换矩阵、IO MUX和RTC IO MUX&#xff0c;可以灵活地配置外设模块的输入信号来源于任何GPIO管脚&#xff0…

k8s存储

目录 前瞻 emptyDir存储卷 hostPath存储卷 nfs共享存储卷 PVC 和 PV NFS使用PV和PVC 配置nfs存储 定义PV 定义PVC 测试访问 搭建 StorageClass nfs-client-provisioner &#xff0c;实现 NFS 的动态 PV 创建 在192.168.75.40节点上安装nfs&#xff0c;并配置nfs服务 …

python:标准正态同质性检验(Standard Normal Homogeneity Test,SNHT) 突变点检测(以NDVI时间序列为例)

作者:CSDN @ _养乐多_ 本文将介绍标准正态同质性检验(Standard Normal Homogeneity Test,SNHT) 突变点检测代码。以 NDVI 时间序列为例。输入数据可以是csv,一列NDVI值,一列时间。代码可以扩展到遥感时间序列突变检测(突变年份、突变幅度等)中。 结果如下图所示, 文…

k8s中的service组件

背景 service组件是k8s中类似于nginx网关的入口&#xff0c;通过它可以访问到背后的pod提供的服务&#xff0c;并且自带负载均衡的功能&#xff0c;本文就简单看下service组件 k8s中的service组件 假设我们要配置一个tomcat的service集群&#xff0c;配置步骤如下 1.首先我们…