当前位置:首页 > 科技  > 软件

你有多久没在 JS 中使用 class 了?

来源: 责编: 时间:2024-07-05 09:02:20 1171观看
导读Hello,大家好,我是 Sunday。在 ES6 的规范中(2015年),ECMAScript 推出了 class 语法。class 本质上是对基于原型的继承机制的一种语法糖,其目的是为了使定义和继承对象更加简洁和清晰。并且,这种语法在其他的语言(比如:java)中

Hello,大家好,我是 Sunday。rQK28资讯网——每日最新资讯28at.com

在 ES6 的规范中(2015年),ECMAScript 推出了 class 语法。rQK28资讯网——每日最新资讯28at.com

class 本质上是对基于原型的继承机制的一种语法糖,其目的是为了使定义和继承对象更加简洁和清晰。并且,这种语法在其他的语言(比如:java)中都有非常广泛的应用。rQK28资讯网——每日最新资讯28at.com

但是,不知道从什么时候开始,我们好像已经逐渐遗忘了 class,特别是在现在基于框架(Vue 或者 React)的项目中。rQK28资讯网——每日最新资讯28at.com

那么到底是因为什么原因导致 class 逐渐没落,目前 class 的应用场景又是什么呢?今天,咱们就来看一看这个问题。rQK28资讯网——每日最新资讯28at.com

01:JS 的独特特性

JavaScript 是一种动态、弱类型的语言,具有其独特的特性:rQK28资讯网——每日最新资讯28at.com

  • 原型继承:JS 的核心是基于原型的继承机制,而不是传统的类继承。每个对象可以作为另一个对象的原型,从而实现属性和方法的共享。
  • 函数式编程:函数是 JS 中的一等公民。同时在 JS 中我们习惯了使用函数可以作为参数传递,也可以作为返回值。
  • 灵活性:JS 是一种弱类型语言,变量可以在不同时间持有不同类型的值。这种动态特性使得语言更加灵活。同时对象的结构可以在运行时动态改变,属性可以随时添加、删除或修改

这些特性使得 JavaScript 在很长一段时间内依赖于 构造函数和原型链 来实现面向对象编程,而不是类继承。rQK28资讯网——每日最新资讯28at.com

02:Vue 和 React 并不推崇使用 class

Vue 和 React 是目前两个最受欢迎的框架,但是它们并不推崇使用 class 语法:rQK28资讯网——每日最新资讯28at.com

Vue

  • 选项式 API:Vue 2 采用的是选项式 API,我们通过定义对象的属性(如 data、methods、computed 等)来构建组件,而不是通过类继承。
  • 组合式 API:Vue 3 引入了组合式 API(Composition API),提供了一种更灵活的方式来组织和复用逻辑,通过函数和钩子的组合来管理状态和生命周期方法,而不依赖于 class。

React

  • 函数组件:React 从一开始就支持函数组件,随着 React 16.8 引入 Hooks,函数组件变得更加强大和灵活,几乎可以替代类组件的所有功能。所以,从 16.8 以后 React 不再推荐使用类组件。而专用函数是组件和 hooks
  • Hooks:Hooks 提供了在函数组件中管理状态和副作用的能力,例如 useState、useEffect、useContext 等,这些 hooks 目前是组件 react 项目的核心功能

基于此,我们可以在线,目前无论是 Vue 还是 React,都不在有使用 class 的场景。rQK28资讯网——每日最新资讯28at.com

那么,目前 class 就已经完全没有应用场景了吗?也不是!rQK28资讯网——每日最新资讯28at.com

03:class 的应用场景有什么?

尽管 class 在项目前端开发中逐渐减少使用,但它在一些特定场景中仍然有其独特的应用价值:rQK28资讯网——每日最新资讯28at.com

  • 面向对象编程(OOP):对于那些习惯于面向对象编程的开发者(特别是 java 转前端的开发者),class 提供了一种更熟悉和直观的方式来定义和继承对象。它在一些大型、复杂的项目中,特别是需要严格的对象模型和继承层次时,依然具有优势。
  • 工具库和框架:在一些工具库和框架中,class 仍然被广泛使用。例如,很多 JavaScript 库(如 Three.js、Vue.js 等)依然使用 class 来定义核心对象和模块。
  • 服务器端开发:在 Node.js 环境中,class 也经常被用来定义模块和组件,特别是在使用 TypeScript 时

总结

针对 class 而言,虽然我们在日常的项目开发中很少有应用场景。但是在进行 库(原生的 JS 或 TS) 开发时,class 依然具备独特的优势。rQK28资讯网——每日最新资讯28at.com


rQK28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-98860-0.html你有多久没在 JS 中使用 class 了?

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 阿里校招面试,我来瞅瞅怎么回事

下一篇: 业务侧最好的朋友:微服务中的 BFF 架构

标签:
  • 热门焦点
  • 6月安卓手机性能榜:vivo/iQOO霸占旗舰排行榜前三

    2023年上半年已经正式过去了,我们也迎来了安兔兔V10版本,在新的骁龙8Gen3和天玑9300发布之前,性能榜的榜单大体会以骁龙8Gen2和天玑9200+为主,至于那颗3.36GHz的骁龙8Gen2领先
  • Automa-通过连接块来自动化你的浏览器

    1、前言通过浏览器插件可实现自动化脚本的录制与编写,具有代表性的工具就是:Selenium IDE、Katalon Recorder,对于简单的业务来说可快速实现自动化的上手工作。Selenium IDEKat
  • 如何使用JavaScript创建一只图像放大镜?

    译者 | 布加迪审校 | 重楼如果您曾经浏览过购物网站,可能遇到过图像放大功能。它可以让您放大图像的特定区域,以便浏览。结合这个小小的重要功能可以大大改善您网站的用户体验
  • 使用LLM插件从命令行访问Llama 2

    最近的一个大新闻是Meta AI推出了新的开源授权的大型语言模型Llama 2。这是一项非常重要的进展:Llama 2可免费用于研究和商业用途。(几小时前,swyy发现它已从LLaMA 2更名为Lla
  • 梁柱接棒两年,腾讯音乐闯出新路子

    文丨田静 出品丨牛刀财经(niudaocaijing)7月5日,企鹅FM发布官方公告称由于业务调整,将于9月6日正式停止运营,这意味着腾讯音乐长音频业务走向消亡。腾讯在长音频领域还在摸索。为
  • 东方甄选单飞:有些鸟注定是关不住的

    文/彭宽鸿编辑/罗卿东方甄选创始人俞敏洪带队的“7天甘肃行”直播活动已在近日顺利收官。成立后一年多时间里,东方甄选要脱离抖音自立门户的传闻不绝于耳,“7
  • 消息称小米汽车开始筛选交付中心:需至少120个车位

    IT之家 7 月 7 日消息,日前,有微博简介为“汽车行业从业者、长三角一体化拥护者”的微博用户 @长三角行健者 发文表示,据经销商集团反馈,小米汽车目前
  • iQOO Neo8 Pro抢先上架:首发天玑9200+ 安卓性能之王

    经过了一段时间的密集爆料,昨日iQOO官方如期对外宣布:将于5月23日推出全新的iQOO Neo8系列新品,官方称这是一款拥有旗舰级性能调校的作品。随着发布时
  • DRAM存储器10月价格下跌,NAND闪存本月价格与上月持平

    10月30日,据韩国媒体消息,自今年年初以来一直在上涨的 DRAM 存储器的交易价格仅在本月就下跌了近 10%,此次是全年首次降价,而NAND 闪存本月价格与上月持平。市
Top