问题标签 [svelte]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1416 浏览

javascript - 使用汇总将svelte html文件导入js文件

.js 文件:

苗条/HTML文件

在我的 Rollupfile 中 import svelte from 'rollup-plugin-svelte';

在此处输入图像描述

似乎汇总无法在导入时生成纤细的组件。我在这里误解了什么吗?

0 投票
1 回答
3556 浏览

reactjs - 使用 svelte js 的原因

这些天我发现了 Svelte 框架。你觉得用它代替 React.js 或 Vue.js 怎么样?

我根本没有使用它,所以我不明白它们之间的深刻区别。我读过 Svelte 的速度要快得多,但它对状态存储(如 redux 等)没有一定的支持。那么你能说什么呢?我试图找到有关优点和缺点的更多信息,但徒劳无功。

0 投票
1 回答
1133 浏览

svelte - 使用 SSR 补水

我试图用 Svelte 创建一篇交互式文章,其中包括使用 ssr 选项的 html 的预渲染版本。不幸的是,我的水合代码在加载时会吹走所有预渲染的 DOM 节点。我希望有一个静态 index.html 页面,该页面可以加载并使用苗条的捆绑包补充水分,但不会吹走整个页面,因为大多数它将是<p>带有文本的静态标签。这是可能的吗?我在这里做一些愚蠢的事情吗?

https://github.com/shancarter/svelte-ssr

0 投票
1 回答
1219 浏览

javascript - 如何访问 svelte 组件中的命名插槽?

我正在尝试 Svelte(太棒了!),但我遇到了一个我不知道如何解决的问题。我有一个带有几个命名插槽的组件。根据这些插槽是否被填满,我需要渲染一些额外的 HTML。所以我的想法是将这些块放在一个{{#if slots}}块中,但我不知道如何引用命名的插槽。尝试this.options.slotsoncreate我可以看到插槽的集合,但我不知道如何在我的组件的 HTML 部分中找到它们。任何人都可以帮助我吗? 看到这个 REPL

0 投票
1 回答
5364 浏览

dom - 如何使用 Svelte 框架操作 DOM

我对 Svelte 框架非常陌生。最近我在玩 Svelte,但对如何使用 Svelte 在 jQuery 中操作 DOM 感到困惑。

我正在尝试显示/隐藏<li>按钮单击。

0 投票
1 回答
720 浏览

javascript - 将多个组件加载到 js 文件,但仅使用所需的组件

我正在学习使用 svelte 框架来制作组件。但是我无法从我加载到 js 文件中的组件中创建一个组件的实例。

所以,这是我的 html 文件:

我的 js 输入文件(我在其中导入组件):

以及组件的 html:

所以,此时,它加载了组件,因为它在 js 输入文件上有一个实例。问题是,此时,如果我想要第二个实例,我必须自己创建一个 js 文件。我的想法更像是在 js 文件和要使用它们的 html 文件中导入我想要的所有组件,我只会调用它们。

这可能吗。我一直在阅读文档,但没有找到我想要的。

编辑:我忘了说我也在使用 webpack。因此输入和输出文件。我设法使用了多个组件。我找到的解决方案是在我的 js 输入文件上执行此操作:

我将导入的对象放在一个全局变量中,这样我就可以在我想要的地方调用它,如下所示:

然而,虽然我有这个解决方案,但我的期望是在 js 输入文件中只导入一次,而不必依赖全局对象,然后在我需要的地方调用它,如下所示:

虽然我在 React.js 上看到的不多,但我通常看到程序员这样做。我也有同样的期待。不过,由于我还有其他事情需要做,我暂时就这样搁置了,以后再优化。

尽管如此,如果有人知道如何做到这一点,我会全力以赴,因为我是 Svelte 的新手,除了文档之外没有太多关于它的信息,我认为这些文档在相同的部分有点混乱。

0 投票
2 回答
8047 浏览

typescript - TypeScript 可以理解 Svelte 组件吗?

Svelte 最终输出原生 JavaScript 类。所以,TypeScript 可以理解这些。但是,Svelte 组件必须首先从其初始.html形式编译。在那之前,可以理解的是,TypeScript 默认不理解它们的初始形式。因此,即使在运行时导入成功,它也会报告“找不到模块”错误。有什么方法可以让 TypeScript 理解它们吗?

一种解决方法是为.html模块提供类型定义,近似于标准 Svelte 组件接口。但是,更希望对每个单独的组件简单地使用真实的组件类输出本身,从而产生最准确的类型信息。

顺便说一句,我没有提到像 Webpack 或 Rollup 这样正常执行 Svelte 编译步骤的工具。我不知道这些工具是否与这个问题有关。

更新 1:我对 TypeScript 进行了更深入的研究,似乎可以为它创建插件。但是,它们似乎有限,因此可能没有用。

更新 2:还有一些关于 TypeScript 中自定义模块加载器的讨论​​(这里这里)。

0 投票
1 回答
2656 浏览

javascript - 嵌套组件更新时,Svelte 商店不会触发 onchange

假设我想创建一个苗条的多色选择器,也许让用户选择前景色和背景色。我的数据模型如下所示:

所以我的 app.js 是

然后我可以构建一个RGBSelector组件来重用:

App.html的很简单:

这似乎工作,主要是。范围输入中的双向绑定正在工作(标签更新),并且商店甚至正在更新(通过store._state在控制台中检查来验证)。所以我相信 中的bind关键字RGBSelector将更改传递到它们在中声明的位置App,这反过来又将bind它们发送到商店。

麻烦的是,store.onchange处理程序没有开火。谁能看到我做错了什么?

完整示例:https ://glitch.com/edit/#!/nonstop-hourglass

0 投票
1 回答
753 浏览

javascript - 结合动态元素设置 bind:group-value 的值

我目前正在尝试在 svelte 中创建类似向导的一系列问题。为此,我使用了一个组件,该组件将问题作为参数并构建单选项目列表(简化):

在组件内部,以下代码构建了表单元素:

oncreate我观察问题参数并初始化并尝试根据我商店的答案设置默认值:

selected在组件的“问题”属性更改一次后,设置值停止工作。它是通过观察设置还是仅在常规 onclick 事件中设置似乎并不重要。

如果有人知道我做错了什么或指出我正确的方向,那就太好了!

0 投票
1 回答
49 浏览

svelte - 顶级 <:Body> 注入?

想象一下,我有以下组件,<TopLevelThing>.

它旨在用于<body>.

但是,我可能想将它用作深入内部的组件的一部分<body>,远离顶层。

这可以通过如下所示的特殊标签来实现。

<body>Svelte 会将其注入到其他元素的顶层。但是,它将保留组件的所有功能:生命周期、属性以及作为组件组织和结构的一部分。

在 Svelte 中是否有可能发生这样的事情?

顺便说一句,我想这可以通过变通方法来实现,但我想知道它是否有特定的功能。