关于Svelte的一点了解

Svelte了解及优势

Svelte 是一个 无运行时系统 的框架。

  1. 编译器

Svelte 是一种全新的构建用户界面的方法。传统框架如 React 和 Vue 在浏览器中需要做大量的工作,而 Svelte 将这些工作放到构建应用程序的编译阶段来处理。 运行阶段==>编译阶段

  1. 打包体积更小

下面是Jacek Schae大神的统计,使用市面上主流的框架,来编写同样的论坛demo 应用的体积:

在这里插入图片描述

项目体量增大的时候,Svelte 确实有一个阈值会使得它在一定程度后让体积大小没有了优势,但是在一般情况下,只要不是特别复杂的中后台管理应用,Svelte 应当会比其他框架体积小。
特别是在一些 H5 游戏中,如果你想要获得 React/Vue 数据驱动的方式编写应用,但是你又不想要引入他们这么大的运行时,确实来说是一个非常不错的方案。

  1. 不使用 Virtual DOM

Virtual DOM 就是 虚拟DOM,是用 JS 对象描述 DOM 节点的数据,由 React 团队推广出来的。
Svelte 在未使用虚拟DOM的情况下实现了响应式设计,底层应该依旧使用了diff算法

  1. 更自然的数据的响应式

这也是我刚接触 Svelte 时立刻喜欢上的理由。这里说的响应式设计是只关于数据的响应,而不是像 Bootstrap 的响应式布局。
现在流行的前端框架基本都使用 数据驱动视图 这个概念,像 Vue 和 React 这些框架,都有响应式数据的概念。但 Vue 和 React 在数据响应方面还是有点“不那么自然”,我简单举几个例子:

  • 在 传统React 中,如果需要更新数据并在视图中响应,需要使用 setState 方法更新数据。
  • 在 Vue2 中,响应式数据要放在data 里,在 methods 中使用 this.xxx 来更新数据。
  • 在 Vue3 的 Composition API 语法中,需要使用 ref 或者 reactive 等方法包裹数据,使用 xxx.value 等方式修改数据。

上面这几种情况,感觉多少都添加了点东西才能实现响应式数据功能(至少在普通开发者开发时是这样)。

在 Svelte 的理念中,响应式应该给开发者一种无感体验,比如当我规定 C的值是 A + B 的和,设置好规则后,用户只需要修改 A 和 B 即可,C 会自动响应,而不需再做其他操作。

  1. 性能强

对比多个热门框架的性能,Svelte 是相当优秀的。
非运行时的框架,对于首屏的渲染也是有一个极大的帮助,你可以将首屏组件进行拆分,非运行时的首屏组件其实是非常小的,这对移动端来说非常的友好,因为毕竟使用 SSR 对服务端还是有一定的压力要求的。

  1. 内存优化

Svelte 对内存的管理做到非常极致,占用的内存也是非常小,这对于配置不高的设备来说是件好事。

  1. 更关注无障碍体验

在使用 Svelte 开发时会 自动对无障碍访问方面的体验进行检测,比如 img 元素没有添加 alt 属性,Svelte 会向你发出一条警告。无障碍体验对特殊人事来说是很有帮助的,比如当你在 img 标签中设置好 alt 属性值,使用有声浏览器会把 alt 的内容读出来。

Svelte + Vite 创建项目

# 1、下载模板的命令
npm init vite@latest

# 2、输入项目名

# 3、选择 Svelte 模板

# 4、进入项目并安装依赖
npm install

# 5、运行项目
npm run dev

# 6、在浏览器访问

demo地址:https://codesandbox.io/dashboard

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值