将函数绑定到按钮非常简单直接:
<button on:click={handleClick}>
Clicks are handled by the handleClick function!
</button>
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时,我没有看到将参数(参数)传递给函数的方法:
<button on:click={handleClick("parameter1")}>
Oh no!
</button>
Run Code Online (Sandbox Code Playgroud)
该函数在页面加载时被调用,并且永远不会再次调用。
是否有可能将参数传递给从 调用的函数on:click{}?
我刚刚找到了一个hacky的方法来做到这一点。从内联处理程序调用该函数有效。
<button on:click={() => handleClick("parameter1")}>
It works...
</button>
Run Code Online (Sandbox Code Playgroud) 我已经编写了一个验证类,并希望将其包含在我的 VueJS 3 项目中。不幸的是我收到以下错误:SyntaxError: ambiguous indirect export: default
这是我的代码:
// ..classes/formValidationClass.js
export class FormValidator {
...
}
// some vue file with a form
import FormValidation from "..classes/formValidationClass"
export default {...}
Run Code Online (Sandbox Code Playgroud)
此错误是什么意思?我需要做什么来纠正该错误?
通过使用$:语法声明它们来使用反应变量时,您会收到以下错误。
Cannot access 'variable_name' before initialization
这是代码:
App.svelte
<script>
import { ledzep, redhotchilis } from './data.js'
$: bandmembers = [...ledzep, ...redhotchilis]
let namesWithA = bandmembers.filter(d => {
if (d.indexOf('a') > 0) {
return true;
}
else {
return false
}
})
</script>
<h2>Band Members</h2>
<ul>
{#each bandmembers as member}
<li>{member}</li>
{/each}
</ul>
<h2>Members with "A" in their names</h2>
<ul>
{#each namesWithA as member}
<li>{member}</li>
{/each}
</ul>
Run Code Online (Sandbox Code Playgroud)
数据.js
export const ledzep = ["Jimmy Page", "John Bonham", "Robert Plant", "John …Run Code Online (Sandbox Code Playgroud) 我是 Svelte 和一般编码方面的新手。我更愿意学习 SvelteKit (Svelte@Next) 而不是 sapper,因为这似乎是 Svelte 的发展方向。
对于我的个人项目,我需要支持基于 url slugs 的动态路由。我该如何在 SvelteKit 中做到这一点?例如,如果我有 /blog 目录并且需要根据其“id”提取内容,我该怎么做?
我遇到困难的部分是访问 URL slug 参数。
提前致谢。
我正在费尽心思地弄清楚如何在我的 Svelte 项目中从 Vite 构建单个 .js 文件,其中包括我的 Svelte 项目中构建的所有 javascript 和 CSS。默认情况下,Vite 将应用程序捆绑到一个 html 文件(这可以)、两个 .js 文件(为什么?)和一个 .css 文件(只想将其捆绑到一个 js 文件中)。
我运行了这个非常基本的命令来获取入门项目:
npx degit sveltejs/template myproject
我尝试添加几个插件,但我添加的任何一个都没有达到我想要的结果。首先,我发现的插件似乎想要创建一个包含所有内容的 HTML 文件。看起来 PostCSS 可能会有所帮助,但我不明白我可以通过 Vite 设置什么配置来让它执行我想要的操作。
什么是神奇的插件和配置集,它将输出单个 HTML 文件和单个 js 文件,将我的 Svelte 应用程序及其 CSS 渲染到页面上?
我正在尝试/login?ref=/some/path登录后重定向到的参数:
const ref = $page.url.searchParams.get('ref') || '/dashboard';
Run Code Online (Sandbox Code Playgroud)
但是我收到这个错误:
TypeError: Cannot read properties of undefined (reading 'searchParams')
我最近开始通过 SvelteKit 使用 Svelte,我对这个框架有一些疑问,但我无法在源代码/文档中找到任何直接答案:
如果您需要从外部 API 请求数据,所有服务器端代码(包括端点)都可以访问 fetch。
谢谢!
prerender server-side-rendering svelte netlify-function sveltekit
基本上,如何做 ff. 在 SvelteKit 中:
我的 sveltekit 应用程序有一个表单,可以向服务器发送 POST 请求。该应用程序在开发服务器上运行良好,但是当我构建并运行该应用程序时,它无法通过 POST 请求发送表单数据。它在浏览器中显示以下错误:
禁止跨站点 POST 表单提交
我正在尝试在 docker 容器内容器化 Svelte js 应用程序,并且在日志中收到此错误,抱怨不同平台中的 esbuild,我使用的是 M1 mac,我尝试esbuild-wasm按照日志建议进行安装,并尝试npm i esbuild-linux-arm64作为一个步骤在 docker 文件中并尝试RUN npm install yarn按照日志建议使用纱线,因为它有内置的东西处理平台,但它不起作用我的 docker 文件
FROM node:16.10.0
WORKDIR /my-website
COPY package.json .
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]
Run Code Online (Sandbox Code Playgroud)
错误是
You installed esbuild on another platform than the one you're currently using.
This won't work because esbuild is written with native code and needs to
install a platform-specific binary executable.
Specifically the "esbuild-darwin-arm64" package is present but …Run Code Online (Sandbox Code Playgroud)