问题标签 [sapper]
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.
node.js - 在节点中使用 Sapper ESM 模块加载器:`import *` 失败
我希望将 ES2015 模块用于项目。根据节点文档,我正在启用.esm
加载器:
我也试过:
哪个失败了SyntaxError: Unexpected token {
如何让 node.js 加载@sapper/server
ESM 模块?
server-side-rendering - Svelte3 添加没有工兵?
经过一整天的谷歌兔子洞之后,我仍然想知道 google/bing/etc 是否能够抓取纤细的应用程序。我想将我的个人投资组合转换为 svelte,这将是一个 SPA。如果我在 svelte SPA 上为标题数据添加标签,谷歌会选择它,还是我需要 ssr 才能让谷歌看到呈现的页面?
svelte - 如何在 svelte/sapper 中处理表单提交?
如果表单数据被拆分为多个页面,如何将表单提交的数据从一个页面传递到另一个页面。
svelte - 如何使用 Svelte 创建一个知道 Sapper 中当前 url 的组件?
我有一个页面,其中有一个带有“Quarters”链接的导航栏。在 Quarters 链接下,当用户在/quarters
路线上时,将显示一个季度列表,如 2019Q2 等。网址将为/quarters/2019q2
.
selected
如果当前 url 与链接的 href 匹配,我想制作一个显示超链接的组件,该超链接将具有该类。这是我能得到的最接近的:
这适用于第一次加载,但是当用户导航到不同的数据页面时,选择不会更新。如何让一些代码只在客户端运行?如果我在window
外部访问该对象,afterUpdate
我将从服务器端代码中得到一个 null ref 错误。
ETA:也试过这个:
当用户单击其中一个数据链接时,该代码不会触发。也试过onMount
了,没有阳性结果。
json - 在 sapper 中从 (WordPress) api 获取内容
我正在使用 sapper 启动模板https://github.com/sveltejs/sapper-template并且对如何从外部 API(在本例中为 WordPress)获取数据感到困惑。
我已经修改了这个包含的/blog/_posts.js const = posts = [...all the json..]
- 首先我尝试用它替换它,const = posts = fetch('http://localhost:9000/wp-json/wp/v2/posts');
它给出了一个错误 fetch is not defined - 所以我包括了 node-fetch - 它现在在服务器中返回一个错误js posts.map is not a function
我一直在阅读以尝试找到答案并尝试过以下操作:
_posts.js
结果:
不幸的是,我找不到任何文档或示例如何做到这一点 - 所以在我尝试学习 sapper 时伸出手,非常感谢您的建议。
javascript - 从全局范围调用 Svelte 组件的函数
我正在创建一个 Sapper 页面,我想在其中使用Google 登录按钮。它需要data-onsuccess
属性来指定回调函数。根据我从 Google 的平台 JS 库中发现的内容,它在 global/window
范围内查找函数。
有没有办法从全局网页范围访问/调用 Svelte 的组件功能?它可能用于与无法直接加载import
到组件中的外部库的互操作。
我正在尝试做的示例:
这项工作onSignComponent
在全局范围内时有效,但在组件范围内时无效。
javascript - 在没有页面重新加载的情况下,Sapper 会话在生产构建中没有正确设置
我正在使用 Sapper 进行一个项目,现在一直在努力解决一些问题 - 不太清楚。我将 Polka 用于我的服务器(它包含在sveltejs/sapper-template#rollup
模板中,所以我使用它)和cookie-session
我的会话中间件。
这是我的 Polka 配置,我也在其中播种会话数据:
当用户登录时,它routes/login.js
本质上是在一些配置文件信息中处理的,并且设置了令牌,session.user
并且请求被重定向回根路径。我是@polka/send-type
用来回复的。见下文:
在那里,我有一个预加载模块用于routes/index.svelte
检查是否session.user
存在,如果存在则重定向到仪表板:
这一切在开发中都可以正常工作,但是当我npm run build
为生产而构建时,它就不那么好了。似乎session.user
在重定向后没有填充login.js
.
我进入的session
对象在登录后preload
没有session.user
设置,反之亦然,在注销时session.user
简单地设置为 null 并且客户端被重定向到根,session.user
仍然填充。
如果我刷新浏览器,session.user
是在正确的状态。无需刷新 - 如果我刚刚注销,我可以像登录一样单击周围,如果我刚刚登录,则不会发生任何session.user
事情undefined
。
只是不确定为什么它可以在开发版本上工作,但不能在生产中工作。鉴于session.user
浏览器刷新时状态是正确的,我猜这不是 cookie 中间件配置的问题。好像我还缺少其他东西。任何帮助将不胜感激!
svelte - Svelte3 Sapper:如何在商店更新时更新父布局?我可以在嵌套布局模块脚本之间传输数据吗?
我在 Svelte3 和 Sapper 待了 3 天,它们很酷,但我不确定我是否正确烹饪它们。
我的应用程序简化结构:
发生了什么:
1) 我的 PL 包含标题菜单,所以我使用 preload(page, session) 和 this.fetch 从它的模块脚本中询问类别数据。另外我必须在那里做一些逻辑,所以我得到路径数据(slugs)。我 .set 类别和路径数据存储在 PL 简单脚本中。
2) CL 包含面包屑组件。Breadcrumbs 从存储中获取 $pathData (我需要将此数据存储在其他逻辑中)。SSR 显示逻辑按预期工作。
3)由于我需要在目录页面之间移动时更改面包屑,我还应该更改存储中的路径数据,因此每条路线 .svelte 都有带有 Preload 返回参数的模块脚本。在简单的脚本中,我 .update(old => new) 存储路径数据。
我希望面包屑在我更改商店后自动更新,但只有在我更改路线时才会更新,即从 L1 导航到 L2 或返回 ()。虽然我在一级面包屑的类别之间导航,但不会改变。
问题:
1)这是正确的行为还是我弄坏了一些东西?如果正确,我应该如何更新面包屑?我可以将它们放在 L1 和 L2 中,但由于重复代码,这在逻辑上似乎很奇怪。
1.1)我将阅读更多关于路由中的正则表达式的信息——这似乎是用一个文件替换 L1 和 L2 .svelte 的方法——它解决了重复代码的问题。但理想情况下,面包屑应该放在 PL 中,这样我就可以再次面临同样的更新问题。我看过https://svelte.dev/docs#bind_element_property和下面的部分,但我不明白这是我的情况,我应该写什么以及在哪里写。
2) 有没有办法将变量从 PL 模块脚本传递到 CL 模块脚本?我是否需要根据我在 PL 中获得的类别数据从 CL 发出产品请求,但存储在模块脚本中不可用,所以现在我在 PL 中进行产品请求(如果需要)(不能在简单脚本中进行产品请求,因为需要 SSR产品)。这似乎很奇怪,因为产品请求显然属于目录布局(CL)或路线 - 而不是 PL!我使用的 API 很奇怪——我知道,但一定有办法……
更新:
3)我有关于路线中正则表达式的红色文档,但我没有找到如何将我的所有目录路线作为一条路线呈现的答案。我可以将 catalog/[cat] 和 catalog/[cat]/[subcat] 路线描述为一条路线吗?
我几乎可以肯定有一个错误,但我找不到它。 https://bitbucket.org/LittleToky/rerooms-store-svelte/commits/50dde002fe9c8ae91a3276bd9a551a7b26841d3c 如果有人要测试它:首先导航到 /rooms/living/miebiel/miaghkaia-miebiel/ 并单击侧面菜单中的不同类别。 在此处查看图片
keyboard-shortcuts - 如何在 Sapper 中实现快捷键?
据我所尝试的..
代码在里面_layout.svelte
。该代码工作正常,但经过一些尝试后它停止工作。我不知道为什么。