Svelte最终输出本机JavaScript类.因此,TypeScript可以理解这些.但是,Svelte组件必须首先从其初始.html
形式进行编译.在此之前,可以理解的是,默认情况下,TypeScript不会以初始形式理解它们.因此,即使在运行时导入成功,它也会报告"无法找到模块"错误.有没有办法让TypeScript理解它们?
一种解决方法是为.html
模块提供类型定义,近似于标准的Svelte组件接口.然而,更希望简单地将真实的组件类输出本身用于每个单独的组件,从而产生最准确的类型信息.
顺便说一句,我没有提到像Webpack或Rollup这样的工具,它们通常会为Svelte执行编译步骤.我不知道这些工具是否与这个问题有关.
更新1:我进一步了解了TypeScript,似乎可以为它创建插件.但是,它们似乎有限,所以可能没用.
REST API 通常使用Authorization
请求标头中的 API 令牌进行访问。如果用户有一个帐户,他们可以简单地获得与他们的帐户相关联的令牌。然后可以在此基础上应用速率限制。
但是,在某些情况下,没有帐户的用户可能需要访问 REST API。想象一下,例如,一个公共新闻网站,它的文章应该可供有和没有帐户的用户阅读。在这种情况下,应该如何访问 REST API 并应用速率限制?
我的直接想法是匿名客户端可以访问资源,POST /api/register/anonymous
并被授予一个 API 令牌,用于具有有限权限的匿名用户。资源本身可以基于 IP 地址进行速率限制。但是,这无疑有其局限性,例如 IP 地址的不可靠性。
对此问题的任何想法将不胜感激。
当中心的flexbox项目溢出其容器时,它们可能会产生不良行为.
已经针对该问题提供了几种非灵活的解决方案,但是根据MDN,存在safe
如下所述的值.
如果项目的大小溢出对齐容器,则项目将对齐,就像对齐模式开始一样.
它可以如下使用.
align-items: safe center;
Run Code Online (Sandbox Code Playgroud)
不幸的是,我无法找到任何关于此的示例或讨论,或者确定它有多少浏览器支持.
我试图safe
在此CodePen中使用.但是,它对我不起作用.本safe
似乎被忽略,或者容器元素是不正确的风格.
如果有人能够阐明safe
它是否可以用于解决溢出问题,我会非常感激,如CodePen示例所示.
在Svelte中,应如何根据组件状态在元素上更改类?
例如,您可能希望在某些条件下将类应用于按钮,如以下示例所示。
<button class="{{class}}">
Run Code Online (Sandbox Code Playgroud)
现在,这可以通过创建一个计算属性来实现,该属性在某些条件下将返回类名或空字符串。
但是,我担心这是否会污染计算属性的名称空间。例如,如果有一个status
,则可能希望同时设置一个动态文本(例如statusMessage
)和一个类(例如)statusClass
。
有没有更好的方法可以做到这一点,或者计算属性是否可行?Svelte是否计划对CSS提供更明确的支持?
在 TypeScript 中,是否可以有一个Pick
-style实用程序类型,其中可以指定键,这些键在所选对象类型上可能可用或不可用?例如:
interface Alpha
{
a: boolean;
b: boolean;
}
type Picked = OptionalPick<Alpha, 'a' | 'c'>; // { a: boolean }
Run Code Online (Sandbox Code Playgroud) 有没有办法在 Svelte 中重新创建组件?
上下文是我有一个已经创建的组件。一旦它完成它的过程,我希望它被销毁然后再次创建。这会将其属性恢复到默认状态,并确保对其嵌套组件执行相同的操作。
我想这在技术上可以通过现有的组件方法实现,但我想知道是否有一种简单的方法来实现它。
顺便说一句,我知道在某些情况下重新创建组件可能效率低下。最好通过手动重置组件及其嵌套组件的状态来实现所需的重新创建效果。例如,递归函数可以以某种方式遍历组件及其嵌套组件,并调用每个组件的默认数据函数。然而,这并不是那么简单,并且存在一些问题(即计算属性和创建生命周期挂钩)。