Blazor使用中的两个问题

2020-12-29  本文已影响0人  108k

1、线程纠缠,刷新效率问题

不是浪费时间的问题,我一般都懒得写:)

async Task shua()

  {

    await InvokeAsync(() => StateHasChanged());

  }

如上所示,在Index页面中使用这个刷新模式,另外在各个模块的Set过程中还使用了

this.StateHasChanged()调用,导致线程刷新非常缓慢,数据库的读写也很慢。

解决:

将Index页面中的这个调用去掉,移到各子模块中,明显流畅了很多,导航到别的页面(例如SetPage),也能导航过去了。之前鼠标都无法导航过去,刷新慢啊。

改变后的子模块如下样子:

public async void Set()

  {

if (cb.HasDelegate)

    {

      await InvokeAsync(async () => await cb.InvokeAsync(AlarmText));

    }

    await InvokeAsync(() => StateHasChanged());

  }

2、参数传递的问题

在页面中传递参数非常麻烦,不如直接使用一个类,static字段,使用起来非常嗨!

在不同的页面自模块直接使用了。就是一个页面的公共变量啊,哈哈。

public class Light

  {

    public static bool IsInIndexPage { get; set; }

  }

上一篇下一篇

猜你喜欢

热点阅读