destroy()
调用此方法可释放 Payment Element 组件占用的资源,并将 SDK 内部状态重置为调用 mount() 之前的状态。
组件资源释放后:
- 已挂载的 Payment Element 将从页面中移除;
- 与本次挂载相关的内部状态、事件监听器等会被清除;
- 如需再次展示 Payment Element,需要重新调用
mount()。
语法
调用此方法时,请使用以下标准语法格式:
JavaScript
TypeScript
copy
destroy()参数
此方法无入参。
返回值
此方法无返回值。
调用场景
注意:以下为典型示例场景,并非完整列表。您可根据具体业务需求判断如何释放组件。
手动调用
在以下情况下,调用此方法来释放 SDK 组件资源:
- 买家离开结账页面或切换视图时
当买家离开当前收银台页面(例如跳转到其它业务页面、关闭收银台弹层)时,建议调用destroy(),释放当前mount()创建的组件资源。 - 重新创建 Payment Element 导致参数发生变化时
当买家发起多次支付,且 Payment Element 配置(如 sessionData、可用支付方式、外观配置等)发生变化时,需要释放之前的 Payment Element 实例,然后使用新的参数重新调用mount()。 - 切换到非 Payment Element 提供的支付方式时
当 Payment Element 已挂载并渲染完成,但你需要切换到非 Payment Element 集成的支付方式(例如自研表单或其它独立组件),应先调用destroy()卸载当前的 Payment Element,再展示其它支付组件。
SDK 自动释放
在以下情况下 SDK 会自动释放资源:
- 支付成功且无需跳转到结果页时
当支付成功,并且流程配置为不跳转到独立结果页时,SDK 会在内部自动回收本次支付所占用的部分资源,将状态重置到调用mount()前。