开发vue3,真的可以不用ref/reactive了,也不需要ref.value

什么是Cabloy-Front?

Cabloy-Front 是一款支持 IOC 容器的 Vue3 框架。不用ref/reactive,不用ref.value,不用pinia

与UI库的配合

Cabloy-Front 可以搭配任何 UI 库使用,并且内置了几款 UI 库的项目模版,便于开箱即用,包括:

  • antdv
  • element-plus
  • quasar
  • vuetify

特性

Cabloy-Front 为 Vue3 引入了以下鲜明特征:

  • 不用ref/reactive:因为在大多数场景下,不需要使用 ref 和 reactive
  • 不用ref.value:因为在 Cabloy-Front 中定义响应式变量更加直观,不再需要 ref 语义
  • 不用pinia:因为 Cabloy-Front 提供了 IOC 容器,可以更加灵活的定义和使用全局对象

动图演示

No ref/reactive

演示:不用ref/reactive,不用ref.value

1. 定义响应式状态

@Local()
export class MotherPageCounter extends BeanMotherPageBase {counter: number = 0;inrement() {this.counter++;}decrement() {this.counter--;}
}

2. 使用响应式状态

@Local()
export class RenderPageCounter extends BeanRenderBase {render() {return (<div><div>counter(ref): {this.counter}</div><button onClick={() => this.inrement()}>Inrement</button><button onClick={() => this.decrement()}>Decrement</button></div>);}
}

演示:依赖注入

1. 逻辑抽离

counter逻辑抽离出来,创建一个Counter Bean

@Local()
export class LocalCounter extends BeanBase {counter: number = 0;inrement() {this.counter++;}decrement() {this.counter--;}
}

2. 在组件中注入并使用

@Local()
export class MotherPageCounter extends BeanMotherPageBase {@Use()$$counter: LocalCounter;
}
@Local()
export class RenderPageCounter extends BeanRenderBase {render() {return (<div><div>counter(ref): {this.$$counter.counter}</div><button onClick={() => this.$$counter.inrement()}>Inrement</button><button onClick={() => this.$$counter.decrement()}>Decrement</button></div>);}
}

框架已开源: https://github.com/cabloy/cabloy-front

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

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

相关文章

三维焊接平台在新一代机器人生产中得到广泛应用-河北北重

随着智能制造行业的不断推进&#xff0c;三维焊接平台在工业机器人领域应用现象普遍。三维焊接平台、三维柔性焊接平台工装夹具也会在新一代机器人——智能机器人在工业生产中得到广泛应用。目前&#xff0c;三维焊接平台、焊接铸铁平台在工业机器人的主要作用是应用于弧焊、电…

上传文件,服务器报500错误

项目场景&#xff1a; 今天项目上出现一个耗时比较长的问题&#xff0c;但是问题很简单&#xff0c;一开始没注意&#xff0c;导致耗时很久&#xff0c;到底是咋回事儿呢&#xff0c;请看下文~~ 问题描述 用户使用APP上传图片&#xff0c;出现 附件上传失败:服务器响应失败 的…

裁员大盘点:2023年50家知名企业到底“减少”了多少员工?

面对裁员传闻&#xff0c;各家都有各家的说法。 什么“人员盘点”、“广进计划、”“优化”、“毕业”、“正常人员调整”、“瘦身”、“寒冬”…… 那么&#xff0c;国内知名企业在过去一年到底增加or减少了多少人&#xff1f; 博主翻查了一些知名上市企业2023年的财报&#…

后端之路第一站——Maven

前提&#xff1a;得会基础java 前言&#xff1a;不知道出于什么原因&#xff0c;可能是喜欢犯贱吧&#xff0c;本人从大一到大二都一直在专研前端开发&#xff0c;一点也没接触过后端&#xff0c;但是突然抽风想学后端了&#xff0c;想试着自己全栈搞一下项目&#xff0c;于是在…

RabbitMQ的基本组件有哪些?

RabbitMQ的基本组件有哪些&#xff1f; RabbitMQ介绍、解耦、提速、削峰、分发 详解、RabbitMQ安装 可视化界面讲解 RabbitMQ 不生产消息&#xff0c;他是消息的搬运工。 1. Producer: 消息的发布者。 2. Connection:producer/comsumer 和 Message Broker 之间的 TCP 连接。 3…

【数据结构】堆排序和Top-K问题(超详细)

文章目录 堆排序向上调整建堆向下调整建堆堆排序调整过程 Top-K问题 堆排序 排升序要建大堆&#xff0c;排降序要建小堆&#xff08;这里以排升序为例&#xff09; 排序思想&#xff1a; 1.首先将待排序的n个数建成大堆&#xff08;此时堆顶是n个数里最大的&#xff09;. 2.将…

掌握Midjourney系列:3D 微缩场景

嘿&#xff0c;AI绘画爱好者们&#xff01;需要一些酷炫的视觉效果来提升你的下一个项目吗&#xff1f; 我们为你准备了超过十个极棒的 Midjourney 提示&#xff0c;让你轻松制作出精美的 3D 微缩场景。 这些提示非常适合用来美化你的文章或是纯粹为了乐趣而使用。记住&#…

计算机SCI期刊,中科院2区TOP,对国人相当友好,一周内出版!

一、期刊名称 ISA Transactions 二、期刊简介概况 期刊类型&#xff1a;SCI 学科领域&#xff1a;计算机科学 影响因子&#xff1a;7.3 中科院分区&#xff1a;2区TOP 出版方式&#xff1a;订阅模式/开放出版 版面费&#xff1a;选择开放出版需支付$3950 三、期刊征稿范…

若依plus - cloud 创建新模块(详细教程)

1、拷贝一个system模块到同级目录下 如上我拷贝了一个school的目录 2、进入herefly-school目录&#xff0c;打开pom文件&#xff0c;修改如下两个名字 &#xff08;1&#xff09; &#xff08;2&#xff09;修改启动类名&#xff08;选中的地方&#xff09; &#xff08;3&am…

在线3D展示软件三维展示软件推荐哪家?

博维数孪、动动三维和sketchfab的在线网页3D展示软件工具选择哪一比较好&#xff1f; 选择在线3D展示软件时&#xff0c;需要考虑几个关键因素&#xff0c;包括软件的功能、用户界面、价格、社区支持和兼容性等。以上几款软件工具都有各自的优势&#xff0c;具体取决于需求和偏…

Java加密签名算法学习

文章目录 一、加解密1&#xff0c;RSA2&#xff0c;DES3&#xff0c;AES 二、不可逆加密1&#xff0c;MD52&#xff0c;SHA256 三、签名1&#xff0c;RSA2&#xff0c;DSA 签名是为了验证数据的来源和完整性 加密是为了保护数据的内容&#xff0c;使其对未授权的用户不可读 一、…

【算法】二分查找——在排序数组中查找元素的第一个和最后一个位置

本节博客主要是通过“在排序数组中查找元素的第一个和最后一个位置”总结关于二分算法的左右界代码模板&#xff0c;有需要借鉴即可。 目录 1.题目2.二分边界算法2.1查找区间左端点2.1.1循环条件2.1.2求中点的操作2.1.3总结 2.2查找区间右端点2.1.1循环条件2.1.2求中点的操作2.…