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() 前。