BootstrapBlazor组件库,更优雅的调用js方法
BootstrapBlazor组件库更优雅的调用js方法
在blazor开发中,有时候需要去调用js代码来处理一些逻辑。使用BootstrapBlazor组件库自带的JSModuleAutoLoader
特性可以帮助我们更加方便、简洁的去调用js
下面我们用Live2DDisplay
这个组件为例
我们首先在razor文件中继承接口
@inherits BootstrapModuleComponentBase
然后引入特性,注意!这里要引用完整的js文件路径!
@attribute [JSModuleAutoLoader("./_content/BootstrapBlazor.Live2DDisplay/Components/Live2DDisplay/Live2DDisplay.razor.js", AutoInvokeInit = false, JSObjectReference = true, AutoInvokeDispose = false)]
因为涉及到传参,我们需要重写InvokeInitAsync
方法,如果不需要传参,可以把AutoInvokeInit
设置为true
,这样会自动调用init
方法,就不用去重写了。
protected override async Task InvokeInitAsync()
{
await InvokeVoidAsync("init", Id);
}
需要注意的是JSModuleAutoLoader
默认是调用init
方法
export function init(id) {
//...
}