首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Svelte中在兄弟级组件之间传递数据

在Svelte中在兄弟级组件之间传递数据
EN

Stack Overflow用户
提问于 2020-08-30 02:48:51
回答 3查看 2.4K关注 0票数 3

如何将数据(例如: Navbar标题)传递给父元素中使用的组件?

代码语言:javascript
复制
<!-- _layout.svelte -->
<script>
  import Nav from "../components/Nav.svelte";
  let navTitle = "MyApp";
</script>

<Nav {navTitle}/>
<slot />
代码语言:javascript
复制
<!-- Nav.svelte -->
<script>
  export let navTitle = "";
</script>
<h1>{navTitle}</h1>
代码语言:javascript
复制
<!-- Login.svelte -->
How to pass navTitle value from here to Nav.svelte?

为了澄清,这需要具有可伸缩性,并使用Routify对SPA的所有路由进行页面加载/转换,最好提供一个默认值,并且能够具有HTML值:

代码语言:javascript
复制
<!-- Article.svelte -->
代码语言:javascript
复制
<!-- User.svelte -->
navTitle is '<a href="/user">My Account </a>'
代码语言:javascript
复制
<!-- Comment.svelte -->
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-08-30 09:46:50

跨组件共享数据的最简单方法是使用文档中描述的存储

你的设置应该是

代码语言:javascript
复制
<!-- Nav.svelte -->
<script>
  import { navTitle } from './store.js'
</script>
<h1>{$navTitle}</h1>
代码语言:javascript
复制
<!-- Login.svelte -->
<script>
  import { navTitle } from './store.js'

  navTitle.set('...')
</script>
代码语言:javascript
复制
<!-- store.js -->
import { writable } from 'svelte/store'

export const navTitle = writable('')
票数 5
EN

Stack Overflow用户

发布于 2020-08-30 04:33:08

可以将函数传递给Login.svelte组件。

代码语言:javascript
复制
<script>
  import Nav from "./Nav.svelte";
  import Login from "./Login.svelte"
  let navTitle = "MyApp";
  const onlogin= (v)=>navTitle = v
</script>
<Login {onlogin}/>
<Nav {navTitle}/>

并调用Login.svelte中传递的函数。

代码语言:javascript
复制
<script>
export let onlogin
</script>

<p on:click={()=>onlogin("Logged in")}>
  click me to login
</p>

以下是REPL:https://svelte.dev/repl/f1c8777df93f414ab26734013f2c4789?version=3

还有其他(更好的)方法可以这样做:

  • 使用createEventDispatcher定制事件
  • 商店
  • 上下文(setContextgetContext)
  • 多个Redux-适用于svelte
票数 0
EN

Stack Overflow用户

发布于 2022-11-08 16:33:58

如果您需要在同级元素之间进行通信,请查看这个例子,但是您需要共享数据以特定于每一组同级组件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63653518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档