问题标签 [svelte-3]
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.
javascript - 在 svelte 中使用后退按钮事件监听器
当用户单击浏览器中的后退按钮时,我正在尝试实现滚动到最后一个位置的功能。所以在我的 App.svelte 中,我创建了一个像这样的窗口绑定:
我的问题是它不起作用。是否有其他方法可以使用 eventListeners 或收听此特定事件?
svelte - 将值从布局传递到苗条工兵中的嵌套子路由?
[编辑] 我已更新示例以包括使用 preload ( userb
) 和 {#await} ( usera
)。场景 usera 和 userb 都未定义/users/[username]/about.svelte
你将如何让这样的事情起作用:
/users/[用户名]/_layout.svelte
/users/[用户名]/about.svelte
似乎 /user/:username/about 没有从 _layout 接收道具用户。这适用于 nuxt(对于 vuejs 而不是 svelte 基本上是 sapper)。
svelte - 如何比较 Svelte 3 中的道具变化
Svelte 3 中是否有一种机制可以在渲染之前比较组件内的 prop 更改?类似于 React getDerivedStateFromProps。
materialize - 将 Sass 版本的 MaterialCSS 或 Bulma 集成到 Svelte
我正在寻找有关如何将 Materializecss 或 Bulma 的 sass 版本集成到 Svelte 中的说明。我的目标是能够将单个组件(如按钮组件或卡片组件)导入单个苗条组件。此外,我希望能够利用 Bulma 提供的 sass 变量。
我已经寻找了一些关于如何做到这一点的教程,但我还没有找到任何东西。
有任何想法吗?
javascript - Svelte:如何仅在承诺未挂起时显示某些内容?
在Svelte 关于等待块和承诺的教程中,它们展示了如何在承诺等待/解决/拒绝时显示特定文本。
但是当某些东西没有加载时,你怎么能显示一个元素呢?即当承诺被解决或被拒绝时(当然,没有在 {:then} 和 {:catch} 中复制按钮)
我要做的是以下内容:
但无需复制<MyElement />
。
video - Svelte:重新安装组件以覆盖媒体元素
- 语境
在我的 Svelte 应用程序中,我有多个页面,每个页面显示一个或多个视频。为了渲染视频,我重用了一个视频组件(简化):
主页面通过api接收视频内容并调用视频组件:
一切正常,视频已渲染并可播放。
- 问题
但是:当我导航或想用另一个视频替换视频时,旧的视频元素仍然存在并且播放继续。
我可以beforeUpdate()
用来暂停视频。但是,奇怪的是,新视频是在完全相同的播放时间加载的,一切都搞混了。或者,如果我删除 中的视频元素beforeUpdate()
,它不会填充新信息。
这有点道理,因为video
媒体元素保持完全相同,而只有属性和内容发生变化。因此状态和已经缓冲的源仍然存在。
我需要以某种方式确保,当数据更改时,必须完全重新安装视频组件。 有谁知道这是怎么做到的吗?谢谢!
javascript - SvelteJS vs ReactJS 渲染区别(重绘/重排)
这是我对 DOM 和浏览器如何工作的天真理解
每当 DOM(真实 dom)中的某些内容发生更改时,浏览器都会重新绘制或重排 DOM。因此,简单来说,每次 DOM 更改时,浏览器都需要重新计算 CSS,进行布局并重新绘制网页。这就是在现实世界中需要时间的东西。
所以 React 带有这个虚拟 DOM,它实际上做的是批量更改并调用一次将它们应用到真实 dom。因此,最大限度地减少了回流和重绘。
那么Svelte呢。如果它直接操作 DOM,它如何控制浏览器的重绘/重排。
routes - 以前的路线显示在 Sapper 的当前路线中
我有两条路线/questions
和/profile
. 在onDestroy()
我调用的生命周期事件中console.log('destroyed')
。当我在路由之间切换时,我每次都会在 Chrome 控制台中“销毁”。
问题是在/questions
路由内部,我有复选框,使用bind:group={multiple_ids}
. 因此,在选中/取消选中某个字段后,当我切换/question
到/profile
路由时。路由的内容/question
显示在/profile
路由内部,此后 Chrome 控制台不再显示“已销毁”!这种行为对我来说似乎很奇怪。我不知道发生了什么。这是一个工作项目。请解决这个问题。谢谢
html - 如何在 Svelte 3 中具有条件属性?
是否有更简单的方法来编写以下复选框组件:
拥有<label disabled="false">
是不可接受的,因为 Bulma 有一个 CSS 类.checkbox[disabled]
。