这些前端新技术你很难再忽视了 —— SolidJS

在线体验各类最新模型,更有模型 免费Token 额度领取!
立即体验
简介: 新系列《这些前端新技术你很难再忽视了》,包括:SolidJS、Svelte、Tauri、Bun、Schema等。每一个都引领前端技术演变趋势,很有必要了解。

image.png新系列《这些前端新技术你很难再忽视了》,包括:SolidJS、Svelte、Tauri、Bun、Schema等。每一个都引领前端技术演变趋势,很有必要了解。


咱们将采用 5W1H 分析法,即 What(何事)、Why(何因)、Where(何地)、When(何时)、何人(Who)、How(何法)6 个维度来解析这些“新玩意儿”。

闲话少说,冲了~


  • 点赞收藏关注,今晚一夜暴富 👍👍👍


🤔What



什么是 SolidJS?

答:SolidJS是用于构建用户界面的声明式、高效且灵活的 JavaScript 库。

image.png

我敲,用于构建界面的 JS 库,这个我们熟啊,比如三大框架都是呀,React、Vue、Angular,是和它们一样的库么?

答:是的。


🧐Why



那都有 3 大框架了,还有必要再造一个这样轮子吗、它有什么不一样的?或者它诞生的背景是什么?

答:SolidJS 最大的特点就是“性能直逼原生JS”。


空口无凭,捉襟见肘。有理有据,百口莫辩。数据统计:js-framework-benchmark

image.png


为什么它这么快?

答:主要因为 3 点:

  1. 没有用虚拟 DOM(无 diff 算法):它编译出来的 DOM ,就是原生 DOM ,其它语法是直接调用的,也没有那一整套复杂的虚拟 DOM。
  2. 提前编译,按需打包:无论是 react 还是 vue,这些框架采用的是运行时才编译方案,而 Solid 是预编译,将 jsx 部分的代码,转换成原生的语法。并且,react 和 vue使用,都需要引入整个框架本身。而 Solid 可以按需引入,比方说像 lodash、Rxjs 那样,用个某个功能,按需引入对应的组件即可。
  3. 响应式实现,细粒度更新:如果了解 React 的原理,就会知道,只要是 props 或者 state 改变,React 组件就会重新渲染,而每一次判断是否会重新改变,值是否不一样,也是一整套算法……而 Solid 不一样,他另辟蹊径,每一个组件都是一个独立的线程,每个组件里的 createMemo 或 createEffect 里面去收集对应的依赖, 在 set 改变值后,都会重新执行这些方法。看起来就像是实时更新了一样。


🤫Where



官方文档地址?还是看文档更准确。

答:www.solidjs.com/docs/latest

image.png


左边是文档解释、右边是在线运行的代码,学起来真方便!!


🙄When



SolidJS 什么时候诞生的?

答:SolidJS 框架由 Ryan Carniato 创建,于 2018 年开源。


而 Angular 诞生于 2009 年、React 诞生于 2013 年 3 月 、Vue 诞生于 2014 年 2 月。

SolidJS 妥妥的“够新!!” GitHub star history,这曲线!!逆天了!!


image.png


😄Who



Ryan Carniato 是个什么级别的人物?

答:他自称是前端 JS 性能追求者、响应式编程的超级粉丝,是 Marko 核心团队成员、 SolidJS UI 库的作者。


image.png


😁How



怎么使用?

答:Solid 和 React Hook 代码风格、语法极其相似.


举个例子🌰

import { render } from "solid-js/web";
import { createSignal, createEffect, createMemo, mapArray } from "solid-js";
function Counter() {
  const [count, setCount] = createSignal(0);
  const increment = () => setCount(count() + 1);
  createEffect((prev) => {
    const sum = a() + b();
    if (sum !== prev) console.log(sum);
    return sum;
  }, 0);
  return (
    <>
      <button type="button" onClick={increment}>
        {count()}
      </button>
    </>
  );
}
render(() => <Counter />, document.getElementById("app"));

风格好像 React 啊

虽然长得像 React,但它的思路和 React 是完全不一样的。

推荐阅读知乎的一个高赞回答:

image.png


推荐阅读:

# SolidJS硬气的说:我比React还react

# 比React还Vue3的框架SolidJS,为什么性能可以Number 1?

# 前端框架solidjs怎么样?



相关文章
|
人工智能 Rust 前端开发
前端界的未来趋势:掌握这些新技术,让你的作品走在时代前沿!
【10月更文挑战第30天】前端开发正以前所未有的速度发展,新技术层出不穷。本文探讨了AI助手(如GitHub Copilot)、低代码/无代码平台、跨平台技术(如React Native)和WebAssembly等未来主流技术,并附上示例代码,帮助你走在时代前沿。
755 1
|
前端开发 JavaScript
前端界的革命:掌握这些新技术,让你的代码简洁到让人惊叹!
前端技术的快速发展带来了许多令人惊叹的新特性。ES6及其后续版本引入了箭头函数、模板字符串等简洁语法,极大减少了代码冗余。React通过虚拟DOM和组件化思想,提高了代码的可维护性和效率。Webpack等构建工具通过模块化和代码分割,优化了应用性能和加载速度。这些新技术正引领前端开发的革命,使代码更加简洁、高效、可维护。
267 2
|
前端开发 开发者 C++
独家揭秘:前端大牛们如何高效学习新技术,保持竞争力!
【10月更文挑战第31天】前端技术飞速发展,如何高效学习新技术成为关键。本文通过对比普通开发者与大牛们的策略,揭示了高效学习的秘诀:明确目标、主动探索、系统资源、实践应用和持续学习。通过这些方法,大牛们能更好地掌握新技术,保持竞争力。示例代码展示了如何通过实践加深理解。
371 4
|
前端开发 JavaScript API
前端界的革命性突破:掌握这些新技术,让你的作品引领潮流!
【10月更文挑战第30天】前端技术日新月异,从传统的HTML、CSS、JavaScript到现代的React、Vue、Angular等框架,以及Webpack、Sass等工具,前端开发经历了巨大变革。本文通过对比新旧技术,展示如何高效掌握这些新技术,助你作品引领潮流。
364 2
|
前端开发 JavaScript vr&ar
前端新技术探索:WebAssembly、Web Components与WebVR/AR
【4月更文挑战第12天】WebAssembly、Web Components和WebVR/AR正重塑Web应用的未来。WebAssembly允许C/C++等语言在Web上高效运行,提供接近原生的性能,如游戏引擎。Web Components通过Custom Elements和Shadow DOM实现可复用的自定义UI组件,提升模块化开发。WebVR/AR(现WebXR)则让VR/AR体验无需额外应用,直接在浏览器中实现。掌握这些技术对前端开发者至关重要。
552 3
|
资源调度 前端开发 JavaScript
这些前端新技术你很难再忽视了 —— Monorepo
这些前端新技术你很难再忽视了 —— Monorepo
这些前端新技术你很难再忽视了 —— Monorepo
|
Rust 资源调度 前端开发
这些前端新技术你很难再忽视了 —— Tauri
这些前端新技术你很难再忽视了 —— Tauri
这些前端新技术你很难再忽视了 —— Tauri
|
存储 资源调度 前端开发
这些前端新技术你很难再忽视了 —— pnpm
这些前端新技术你很难再忽视了 —— pnpm
|
JSON 前端开发 JavaScript
这些前端新技术你很难再忽视了 —— JSON Schema
这些前端新技术你很难再忽视了 —— JSON Schema
|
Web App开发 Rust JavaScript
这些前端新技术你很难再忽视了 —— Bun
这些前端新技术你很难再忽视了 —— Bun

热门文章

最新文章

  • 1
    前端如何存储数据:Cookie、LocalStorage 与 SessionStorage 全面解析
    1239
  • 2
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
    553
  • 3
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
    427
  • 4
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
    428
  • 5
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
    540
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
    719
  • 7
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
    1397
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改
    308
  • 9
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
    1164
  • 10
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
    497