如何通过svelte的组件改变背景颜色
How to change background color through component of svelte
我的程序是这样的
<script>
import { islogin, mode } from './stores.js';
import Login from './Login.svelte';
import Logout from './Logout.svelte';
import Menu from './Menu.svelte';
import Deposit from './Deposit.svelte';
import Withdraw from './Withdraw.svelte';
import CheckBalance from './CheckBalance.svelte';
</script>
{#if !$islogin }
<Login />
{:else}
{#if $mode == 'menu'}
<Menu />
{:else if $mode == 'deposit'}
<Deposit />
{:else if $mode == 'withdraw'}
<Withdraw />
{:else if $mode == 'balance'}
<CheckBalance />
{/if}
<Logout />
{/if}
我设置了第一页的 CSS (Login.svelte)
<style>
:global(body) {
background: red;
}
</style>
登录后,我想更改菜单页面上的背景颜色我尝试在 <style>
和 Menu.svelte 中的标签 <body>
上使用背景属性,但似乎没有'不起作用,它只改变菜单按钮的背景颜色,而不是整个页面。
要在不覆盖样式的情况下实现那种 cross-component 通信,我建议使用这样的商店
// store.js
import { writeable } from 'svelte/store';
export const background = writeable('white');
然后使用该商店来驱动 dynamic style
<script>
import { background } from 'store';
</script>
<div style:background-color={$background}>
<!-- content -->
</div>
此商店随后可以从任何地方更新,并且会更改背景颜色。
我的程序是这样的
<script>
import { islogin, mode } from './stores.js';
import Login from './Login.svelte';
import Logout from './Logout.svelte';
import Menu from './Menu.svelte';
import Deposit from './Deposit.svelte';
import Withdraw from './Withdraw.svelte';
import CheckBalance from './CheckBalance.svelte';
</script>
{#if !$islogin }
<Login />
{:else}
{#if $mode == 'menu'}
<Menu />
{:else if $mode == 'deposit'}
<Deposit />
{:else if $mode == 'withdraw'}
<Withdraw />
{:else if $mode == 'balance'}
<CheckBalance />
{/if}
<Logout />
{/if}
我设置了第一页的 CSS (Login.svelte)
<style>
:global(body) {
background: red;
}
</style>
登录后,我想更改菜单页面上的背景颜色我尝试在 <style>
和 Menu.svelte 中的标签 <body>
上使用背景属性,但似乎没有'不起作用,它只改变菜单按钮的背景颜色,而不是整个页面。
要在不覆盖样式的情况下实现那种 cross-component 通信,我建议使用这样的商店
// store.js
import { writeable } from 'svelte/store';
export const background = writeable('white');
然后使用该商店来驱动 dynamic style
<script>
import { background } from 'store';
</script>
<div style:background-color={$background}>
<!-- content -->
</div>
此商店随后可以从任何地方更新,并且会更改背景颜色。