Svelte商店功能更新

2024-02-29

Svelte 存储文档显示正在更新字符串或整数,但我没有在存储中找到任何动态函数。

我不明白如何制作getData作为可写函数以通知 html 发生的变化。

在下面的示例中,我想b后显示updateKey函数被调用。

您将在此处找到 REPL 中的最小代码:https://svelte.dev/repl/3c86bd48d5b5428daee514765c926e58?version=3.29.7 https://svelte.dev/repl/3c86bd48d5b5428daee514765c926e58?version=3.29.7

此处使用相同的代码,以防 REPL 宕机:

应用程序.svelte:

<script>
import { getData } from './store.js';
import { updateKey } from './store.js';
setTimeout(updateKey, 1000);
</script>

<h1>{getData()}!</h1>

store.js

import {setContext} from 'svelte';
import {writable} from 'svelte/store';

var data = {
    'a': 'a',
    'b': 'b'
};

var key = 'a';

export const getData = function() {
    return data[key];
}

export const updateKey = () => {
    key = 'b';
}

目标是在商店中使用动态功能。


好吧,我认为您对 Svelte 中的工作方式仍然有些困惑...不知道如何最好地回答您的问题,所以这里有一些您想要实现的目标的代码,以及一些评论。我希望它能帮助您更好地了解商店中的事物是如何组合在一起的。

App.svelte

<script>
    import { onMount } from 'svelte'
    import { key, data, updateKey } from './store.js'

    onMount(() => {
        // it's not safe to have an unchecked timer running -- problems would
        // occur if the component is destroyed before the timeout has ellapsed,
        // that's why we're using the `onMount` lifecycle function and its
        // cleanup function here
        const timeout = setTimeout(updateKey, 1000);
        
        // this cleanup function is called when the component is destroyed
        return () => {
            clearTimeout(timeout)
        }
    })

    // this will log the value of the `key` store each time it changes, using
    // a reactive expression (a Sveltism)
    $: console.log($key)
</script>

<!--
  NOTE: we're using the $ prefix notation to access _the value_ of the store,
        and not `data`, which would be _the store itself_ (an object with
        subscribe, set, etc.)
  -->
<h1>{$data}</h1>

store.js

import { writable, derived } from 'svelte/store'

const db = {
    'a': 'a',
    'b': 'b'
}

// a writable store with initial value 'a'
export const key = writable('a')

export const updateKey = () => {
    // a writable store has a `set` method to change its value
    key.set('b')
}

// you can use a derived store to compute derived values from
// the current value of other stores
//
// here, we're getting the value from the db when the value of
// the `key` store changes
export const data = derived([key], ([$key]) => db[$key])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Svelte商店功能更新 的相关文章

随机推荐

  • 使用 gnu-make 链接静态库时如何遵循链接顺序?

    我有以下问题 cc g O2 Wall Wextra Isrc rdynamic DNDEBUG build liblcthw a tests list tests c o tests list tests tmp ccpvGjZp o I
  • 应用程序沙箱:重命名文件不起作用

    我有一个基本的 Cocoa 应用程序 让用户管理文件列表 文件是通过拖放添加的 并且我在应用程序重新启动时将访问权限保留在安全书签中 到目前为止 一切都很好 允许应用程序读取和写入用户的文件 但重命名失败并出现权限错误 声称不允许我的应用程
  • Excel中的模式匹配

    我有一个包含两列的 Excel 工作表 第一列是关键词 第二列是消息 关键短语可能出现在消息栏中 我需要知道某个关键词在消息栏中出现了多少次 关键词是一列 消息是第二列 消息列是1个或多于1个关键短语的组合 串联 我需要找出每条消息包含多少
  • 让应用程序显示为 Android 锁屏?

    对此我还没有找到明确的答案 许多应用程序允许您构建 安装自定义锁定屏幕而无需root等 这就像安装应用程序一样 我在开发指南中找到了这个 http developer android com reference android view W
  • 如何使用requirements.txt中的pip和setup.py安装github zip文件?

    我正在与一个名为的图书馆合作lief由于它缺乏 pip 的完整 python 3 7 支持 我需要从以下链接安装它https github com lief project packages raw lief master latest p
  • 是否可以使用 HashSet 作为 HashMap 的键?

    我想用一个HashSet作为一个关键HashMap 这可能吗 use std collections HashMap HashSet fn main let hmap HashMap
  • jsTree 节点展开/折叠

    今天早上我遇到了优秀的 jstree jQuery UI 插件 一句话 太棒了 它易于使用 易于设计并且符合包装盒上的说明 我尚未弄清楚的一件事是 在我的应用程序中 我想确保在任何给定时间仅扩展一个节点 即 当用户单击 按钮并展开节点时 任
  • PyQt4 使用 __init__ 的不同方式

    所以 我正在尝试使用 PyQt4 从基本的 Python 转向一些 GUI 编程 我正在看几本不同的书籍和教程 它们似乎都有稍微不同的启动类定义的方式 一个教程是这样开始课程的 class Example QtGui QDialog def
  • 当简单捕获中的标识符显示为参数的声明符 id 时,没有编译器诊断

    关于 lambda 捕获的部分 expr prim lambda capture 5 http eel is c draft expr prim lambda capture 5 指出 如果 simple capture 中的标识符作为 l
  • 如何将结构数组传递给 C++ 中的函数

    我需要将结构数组传递给函数 我这样做 这是我的职责 void ShowRoutes Route routeList int n string title 这是函数调用 ShowRoutes routeList n Unsorted list
  • 如何在 Javascript 中循环键/值对象? [复制]

    这个问题在这里已经有答案了 var user 现在我想创建一个setUsers 方法接受一个键 值对对象并初始化user多变的 setUsers function data loop and init user 其中数据如下 234 joh
  • CTE 和 TEMP 表之间的主要区别是什么?

    使用有好处吗CTE s common table expressions 而不是使用temp tables 我对它们进行了性能测试 但我找不到它们之间有多大区别 使用有哪些优点和缺点CTE S CTE 和临时表之间最大的区别可能是 CTE
  • 按值设置选择选项“选定”

    我有一个select字段中包含一些选项 现在我需要选择其中之一options使用 jQuery 但是当我只知道value of the option必须选择那个 我有以下 HTML div class id 100 div
  • 安装 DBD::Oracle 时出错

    我正在尝试在我的 RHEL6 1 服务器上安装 Perl 模块 DBD Oracle 在此过程中 我遵循了以下步骤 安装以下 RPM oracle instantclient12 1 basic 12 1 0 2 0 1 x86 64 rp
  • Xcode 构建设置“构建产品路径”(CONFIGURATION_BUILD_DIR)是一个谎言?

    如果我创建一个新的应用程序项目 构建设置如下所示 它声称正在使用构建目录build Debug iphoneos 我认为这是相对于项目目录的 实际上 该项目被编译到 派生数据 目录下 Library Developer Xcode Deri
  • Rails:使用 Authlogic 进行授权

    我需要一个非常精细的授权系统 可以与真实逻辑 http github com binarylogic authlogic tree master 到目前为止我已经尝试过这些宝石 插件 Lockdown http stonean com wi
  • 在 Chef 中使用属性

    刚刚开始使用chef最近 我发现属性存储在一个名为的大型整体哈希中node可在您的食谱和模板中使用 似乎有多种定义属性的方法 直接在食谱本身中 在属性文件下 例如attributes default rb 在传递给的 JSON 对象中che
  • 将多行合并为具有多列的不同行的查询

    我不认为自己是一个完整的 SQL 新手 但我已经断断续续地盯着这个问题两天了 我开始想也许我就是 使用以下两个表 ID Category 1 Animal 2 Color 3 Sport Name ID Value Fred 1 Cat F
  • iOS 8 上的 MPVolumeView 动画

    iOS 8 中存在一个问题或一个功能 当 MPVolumeView 显示时 它会被动画化 就像从 0 扩展到它的宽度一样 我该如何纠正这种行为 iOS 7 上没有这个问题 消除此行为的一种可能方法是子类化 MPVolumeView 并在之后
  • Svelte商店功能更新

    Svelte 存储文档显示正在更新字符串或整数 但我没有在存储中找到任何动态函数 我不明白如何制作getData作为可写函数以通知 html 发生的变化 在下面的示例中 我想b后显示updateKey函数被调用 您将在此处找到 REPL 中