首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

前端框架「React」 VS 「Svelte」

然后是 HTML 代码,你还可以在 标签中编写样式代码。有趣的是,组件中的样式代码只对当前组件有效。这意味着在组件中为 标签编写的样式不会影响到其他组件中的 元素。...需要注意的是在 Svelte 中是通过状态变量的赋值来实现 DOM 更新的。如果状态包含数组或者对象,当对数组使用类似 .push() 方法并不会触发 DOM 更新。...「组件渲染和属性传递」 两个项目我们都是要创建一个由 元素构建的用户界面,该元素包含两个嵌套的组件 Heading 和 Button。 App 组件传递属性给两个子组件。...React 需要使用早先声明的 setCount() 和 setColor() 方法来更新状态值,而 Svelte 则可以直接更新。...如果你也在学习 Svelte 的话,别忘了跟大家分享。 你觉得哪个更好用呢? - END -

3.6K30

干货 | 携程机票前端Svelte生产实践

一个 Svelte 组件编译之后,所有需要的运行时代码都包含在里面了,除了引入这个组件本身,你不需要再额外引入一个所谓的框架运行时! 在Github上拥有 5w 多的 star!...的配置也比较简单: 2.1 组件结构差异 和 React 组件不同的是,Svelte 的代码更像是以前我们在写 HTML、CSS 和 JavaScript时一样(这点和Vue很像)。...然后是 HTML 代码,你还可以在  标签中编写样式代码。组件中的样式代码只对当前组件有效。...这意味着在组件中为  标签编写的样式不会影响到其他组件中的  元素。...为了验证单单使用Svelte进行开发的效果,我们没有进行其他的优化,发布了一版只包含Svelte的代码到产线,来看下bundle size(未做gzip前)和lighthouse评分情况: 除此之外

2.3K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    为什么用 Svelte 写一个小程序如此快速?我用10分钟就搞定了!

    Svelte的语法是HTML的超集,所以任何在HTML文件中有效的内容在Svelte文件中也是有效的。 现在的问题是如何把动态的部分放进去。...该逻辑在组件每次挂载时执行。我们还用特殊的Svelte语法增强了HTML,以创建一个循环并打印每本书的标题。...如果您希望在控制流块中包含多个顶级项目,那么也不必创建包装器元素。 一本书的标题是用花括号包围变量输出的。通常,当您在模板中遇到花括号时,您就知道您输入的是与svelte相关的内容。...让我们以一个更好的UX过渡来结束它:我们希望新的列表元素淡入。...另一个例子是待办事项的管理。现在,它们是在组件内部处理的,没有连接到后端。如果我们要添加API调用,我们将把UI逻辑与后端交互混合起来,这通常可以更好地在组件之外处理,以便更好地分离关注点。

    2.9K10

    React vs Svelte

    然后是 HTML 代码,你还可以在 标签中编写样式代码。有趣的是,组件中的样式代码只对当前组件有效。这意味着在组件中为 标签编写的样式不会影响到其他组件中的 元素。...需要注意的是在 Svelte 中是通过状态变量的赋值来实现 DOM 更新的。如果状态包含数组或者对象,当对数组使用类似 .push() 方法并不会触发 DOM 更新。...「组件渲染和属性传递」 两个项目我们都是要创建一个由 元素构建的用户界面,该元素包含两个嵌套的组件 Heading 和 Button。 App 组件传递属性给两个子组件。...React 需要使用早先声明的 setCount() 和 setColor() 方法来更新状态值,而 Svelte 则可以直接更新。...如果你也在学习 Svelte 的话,别忘了跟大家分享。 你觉得哪个更好用呢?

    3K30

    Svelte 3 快速开发指南(对比React与vue)

    Harris) Svelte 没有 virtual DOM,它会被编译成最小的 “vanilla” JavaScript,并且看起来比其他库性能更好 在下面的教程中,我更关注 Svelte 3 的核心概念... 这是一个 Svelte 组件!真的,它需要的只是一个脚本标签、一个样式标签和一些 HTML。 name 是一个变量,然后在 HTML 中的花括号之间插入并使用。...用“each”创建列表 在 React 中,我们已经习惯了创建元素列表的映射功能。在 Svelte 中有一个名为“each”的块,我们要用它来创建一个链接列表。...然后在 App.svelte 中包含新组件: 1 2 import Form from "....在粗略的一瞥中,Svelte 3 似乎只是另一种做事方式,也许比 React 更聪明。 在 Svelte 中真正吸引人的是,它与 React 和 Vue 不同,没有 virtual DOM。

    12.2K30

    Web 框架能解决什么问题?

    例如,Show 元素将跟踪内部的变化,而不是虚拟 DOM。 在 Svelte 中,生成“active”代码。Svelte 知道哪些事件会导致变化,它会生成直接的代码,区分事件和 DOM 更改。...在 Lit 中,反应性是通过元素属性来实现的,基本上是依赖 HTML 自定义元素的内置反应性。...html`${contact.name}` 组件模型 有一件事超出了本文的范围,那就是不同框架中的组件模型,以及如何使用自定义 HTML 元素来处理它。...而且,还有一个更加令人沮丧的事情,那就是在没有修改你的代码的情况下,将框架升级为新的版本,会出现 bug。...在本系列的第二部分中,我们将会了解到,在没有框架的情况下,我们是怎样处理这些问题的,以及我们可以从中学习到什么。敬请关注!

    1.6K10

    前端框架 React 和 Svelte 的基础比较

    组件结构 Svelte 和 React 组件不同的是,Svelte 的代码更像是以前我们在写 HTML、CSS 和 JavaScript 一样。...这意味着在组件中为  标签编写的样式不会影响到其他组件中的  元素。...需要注意的是在 Svelte 中是通过状态变量的赋值来实现 DOM 更新的。如果状态包含数组或者对象,当对数组使用类似 .push() 方法并不会触发 DOM 更新。...组件渲染和属性传递 两个项目我们都是要创建一个由  元素构建的用户界面,该元素包含两个嵌套的组件 Heading 和 Button。 App 组件传递属性给两个子组件。...React 需要使用早先声明的 setCount() 和 setColor() 方法来更新状态值,而 Svelte 则可以直接更新。

    2.2K50

    前端新宠 Svelte 带来哪些新思想?赶紧学起来!

    更关注无障碍体验 在使用 Svelte 开发时会 自动对无障碍访问方面的体验进行检测,比如 img 元素没有添加 alt 属性,Svelte 会向你发出一条警告。...我们大部分代码都是写在 .svelte 后缀的文件里。 .svelte 文件主要保安 多个 HTML 元素、1个 script 元素 和 1个 style 元素 。这3类元素都是可选的。...在 Svelte 中,使用 {} 大括号将 script 里的数据绑定到 HTML 中。...渲染 HTML 标签 @html 如果只是使用插值的方法渲染带有 HTML 标签的内容,Svelte 会自动转义 之类的标签。...在 Vue 中有 v-html 方法,它可以将 HTML 标签渲染出来。在 Svelte 中也有这个方法,在插值前面使用 @html 标记一下即可。

    4.3K20

    框架究竟解决了啥问题?我们可以脱离它们吗?

    例如,Show 元素将跟踪内部发生的变化,而不是虚拟 DOM。 在 Svelte 中,会生成“响应式”代码。...Svelte 知道哪些事件会导致更改,并生成简单的代码,在事件和 DOM 更改之间划清界限。 在 Lit 中,响应式是使用元素属性完成的,本质上依赖于 HTML 自定义元素的内置响应性。...但是,它们没有提供明确的数据绑定、条件渲染和列表渲染这样的概念,并且也没有跨平台响应式这样微妙的功能。...例如,它允许在没有提交按钮的情况下捕获 “Enter” 键,并允许通过 submitter 属性区分多个提交按钮(在后面的例子中我们会看到这个)。 默认情况下,元素与它们所包含的表单相关联。...你的 HTML 文件现在会包含应用程序的所有 HTML — 静态部分是渲染的 DOM 的一部分,而动态部分在 template 中表示,在一定时机会被克隆并 append 到文档中。

    8K30

    Rich Harris 谈论 SvelteKit 和 Svelte 的下一步

    它使 React 不再需要在自己的应用程序框架中拼凑起来。” 简而言之,如果开发人员正在使用 Svelte 构建应用程序, SvelteKit 支持并提供了最佳方法来实现这一点,他解释道。...“一个是一次性生成 HTML,完成后就完成了,”他说。...SvelteKit 方法的好处 这种方法的好处是能够更好地感知性能,因为页面的一部分会在 JavaScript 加载时运行,甚至在 JavaScript 无法加载时也会运行,Harris 说这种情况比开发者想象的要多...例如,当他在地铁上时就会遇到这个问题——连接断开了,JavaScript还没有加载。具有服务器端渲染可以使用户仍然能够查看内容。 “这对于搜索引擎优化、归档目的和可访问性等方面都更好,”他说。...“我们正在看到的演变是从集中式、手动管理的服务器转向这些非常小的计算单元,它们可以在世界各地的任何地方运行。它可以是任何计算机,但在我们的情况下,它恰好是在呈现 HTML 。”

    29910

    一文讲透前端新秀 svelte

    编写一个 svelte 组件的体验,跟开发原生 web 基本相同:写 HTML 文档结构,在 script 标签内编写 js 代码,在style 标签内编写样式。...HTML 网页开发技术,就能快速上手 svelte。...灵活 如果用 svelte 开发一个组件,外部调用可以把这个组件当作一个用 js 写的类来使用,直接通过 new 来创建组件,通过实例方法来调用组件的方法,非常实用。...脚本(script),样式(style) 与 HTML 语法结构高度一致 与 HTML是,在 script 里声明的所有变量,都可以在模版中引用。...为了更好的发挥 svelte 的优势,更快的定位解决实际使用问题,有必要对 svelte 的原理进行深入的探究。下文将对 svelte 的核心机制进行剖析。

    4.5K20

    都快2020年,你还没听说过SvelteJS?

    这时你可能会问,要减少bundle size真的要回到那个刀耕火种的时代吗?有没有那种既可以让我用接近React和Vue的语法编写代码,同时又不包含框架runtime的办法。...组件定义 HTML markup 首先让我们创建一个展示书本具体信息的卡片组件,在src文件夹底下新建一个BookCard.svelte文件,里面定义一下卡片组件的HTML markup: // src...style标签然后把该组件相关的样式写在这个标签内,注意这里的样式只会对组件内的元素有效,不会影响到其他组件的样式的。...: 条件判断 Svelte可以用if语法块根据不同条件展示不同的内容,我们可以在购物车为空的时候给用户展示一个空的状态: // src/App.svelte ......这个问题现在还没有具体的答案,只能等后人实践的时候给出答案了,大家有兴趣可以看一下作者在github上面的讨论[12]。•Ecosystem - 生态。

    3.2K10

    前端框架自欺欺人,TypeScript全无必要?

    大致看了下外国小伙的文章,他有以下一些槽点: HTML 不是前端框架最佳的选项; 前端框架引入了复杂度问题; 前端框架编造出的模板语法完全没必要,用 DOM API 更好; 不同框架的模板语法不统一。...3.1 HTML 模板:隐藏实现细节,降低开发难度 我们知道现代的前端框架基本都采用了类似 HTML 的语法来开发界面。并或多或少对这种语法进行扩展,支持条件渲染,循环渲染,组件渲染等等。...其实我们不需要深入探讨每个框架是怎么实现的,只需要知道,在框架的设计中,有这么一套对底层平台的抽象:把UI元素的创建,更新,删除等接口抽象出来,然后再针对不同平台实现对应的操作。...再一个是,Vue 保留了前后端未分离时期,后端模板渲染的那一套,也就是在 HTML 的基础上扩展条件渲染,循环渲染的语法。这让从旧时代后端模板渲染的那些开发者感到格外亲切,也更容易接受。...在 Svelte 的内部,为了追求性能,还通过位运算做变量的变更标记。由于 Svelte 没有传统意义上的运行时,其框架体积也非常小,有利于首屏加载。

    64520

    Svelte框架:编译时优化的高性能前端框架

    架构概览Svelte架构主要包括以下组件:模板语法:Svelte使用简洁的模板语法来描述UI结构,类似于HTML,但支持声明式数据绑定和计算属性。...组件系统:Svelte组件是独立的、可重用的代码块,包含模板、样式和逻辑。计算和响应式系统:Svelte的响应式系统跟踪组件内数据的变化,自动更新相关视图。...类型检查:Svelte支持TypeScript,提供静态类型检查和更好的开发工具支持。...Custom Elements: Svelte组件可以作为自定义元素使用,与其他库和框架(如React、Angular)集成。...Svelte的生态系统虽在增长,但仍相对较小。Svelte vs Vue模板语法:Vue使用类似的模板语法,但Svelte的模板更接近原生HTML,且支持计算属性和条件语句。

    15610

    从Todolist入门Svelte框架

    从Todolist入门Svelte框架 Svelte入门 Svelte-重编译框架-编译器即框架 ​ Svelte和React、Vue这些JavaScript框架类似,希望开发者更好的去构建交互式界面...三种情形 实现:通过svelte框架在html中写if-else判断,点击状态按钮使当前todo对象的状态值改变,然后根据不同的状态值加载不同的html标签,在写的过程中遇到一个神奇的问题 {#if user.loggedIn...但是这个if判断的逻辑语句却没有办法在变量值改变后去加载改变后的html标签导致无法实现功能,而上面的写法if却可以监测到变量改变,通过调试之后发现可能是这个对象的原因,猜测是我写在todos这个数组里...我发现因为我的赋值语句是todo.status = ‘xxxxx’,因此svelte检测到我更新了点击按钮传进来的todo对象,也就是todos数组的一个元素,但是它检测不到我的todos数组也随之更新了...实现:此前我并没有使用过indexeddb在阅读文档的过程中还是比较生疏,没怎么接触过数据库的内容,大概了解了之后在实际写的过程中还是遇到了相当多的问题,再加上国庆7天因为准备篮球队11月初的省赛早上9

    1.5K20

    耗时两周从Vue 2迁移到Svelte后:代码执行更快、体验更佳

    之所以没有考虑 React,是因为它的学习过程太耗时间,而且也不提供能开箱即用的解决方案。Vue 和 Svelte 在这方面的优势明显更大。...关于 Vue 3 和 Svelte 哪个更好的争论一直是前端圈的热门话题,Vue 作者尤雨溪去年也在 GitHub 上创建了一个仓库用来对比 Svelte 和 Vue 3 组件。...70%),在 SSR 模式下大 110%; 在理论上,如果一个应用程序包含超过 15.04 / 0.78 约等于 19 个 todomvc 大小的组件,则 Svelte 应用程序将最终比 Vue 应用程序体积更大...在Svelte中,开发者可以直接编写自己的HTML。 第六,Svelte 中会自动限定样式范围。这对可维护性来说是个好消息,有助于避免意料之外的 CSS 影响。...Svelte 通过将逻辑(JS)、结构(HTML)和样式(CSS)组合在同一文件中,大大优化了面向组件代码的可读性和可维护性。其独特之处,就在于所有元素都会被编译在同一.svelte 文件当中。

    3K30

    Svelte使用心得:在个人项目中表现不错,但在大型企业项目中仍有待观察

    如果需要在 Svelte 管理的元素进入和离开 DOM 时对其进行动画处理,那么作者“吐槽”的这些 API 就非常有用。看来作者之前的抱怨不成立了。...组件格式 Svelte 的组件格式最得我心。在编写.svelte 文件时,默认上下文跟浏览器是完全相同的,都是用 HTML。...但我觉得组件格式确实是很多朋友喜爱 Svelte 的原因。这可能是因为浏览器也优先使用 HTML,所以用 Svelte 的话上下文切换较少,但我不确定是不是这样。总之,我个人非常喜欢。...事件调度程序 API Svelte 提供一个内置 API 可用于创建、分派和在父元素上侦听 CustomEvent。 在基于单向数据流概念构建的系统中,其实很难为 Web 事件建模。...Svelte 提供一种优雅的方式,可以在带有 标签的组件中使用CSS。那么,为什么不在CSS中实现过渡和动画? 也许我只是没有找到真正能用上这些API的用例,确实。

    28020
    领券