svelte - 如何比较 Svelte 3 中的 Prop 变化

标签 svelte svelte-3

Svelte 3 中是否有一种机制可以在渲染之前比较组件内的 prop 更改?类似于 React getDerivedStateFromProps

<script>
 export let color;

  // Does anything like this exist in Svelte?

  beforeUpdate((changes) => {
     const same = changes.prev.color === changes.next.color
  })
</script>

最佳答案

如果你想只在 color 变化时执行一段代码,可以使用响应式声明:

<script>
  export let color;

  $: {
     console.log('color changed', color);
     // will only get called when the `color` changed.
  }
</script>

但是如果您想使用当前值和先前值执行该代码段,您可以执行以下操作:

<script>
  export let color;
  let prevColor;

  $: {
     console.log('currentColor:', color, 'prevColor:', prevColor);
     prevColor = color;
  }
</script>

关于svelte - 如何比较 Svelte 3 中的 Prop 变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58809240/

相关文章:

adsense - 如何在 SPA(单页应用程序)的路由更改时调用 AdSense 自动广告?

typescript - slim 的 : imported typescript files not recognized

ecmascript-6 - 如何在 svelte 中公开一个可以接受参数进行渲染的函数?

javascript - 如何将组件的值传递给其父组件?

javascript - 在编译的 svelte 代码中保留额外的脚本标签

rust - 将 SvelteKit 静态部署到 Actix

javascript - 奇怪的 Svelte 错误 - 缺少 service-worker.js - 错误 404

environment-variables - 使用 Rollup Replace 将环境变量传递到 sapper 的客户端安全吗?

javascript - 在 typescript svelte 中导入别名 svelte 组件

javascript - 外部依赖项在 Nav.svelte 中不起作用