flutter-tutorials icon indicating copy to clipboard operation
flutter-tutorials copied to clipboard

architecture same issues

Open BelongsH opened this issue 5 years ago • 0 comments

Thank you for your valuable advice on the architecture。

I'm looking at your code, there are still many things I can't understand. Need to ask you。

    return BaseWidget<HomeViewModel>(
      viewModel: HomeViewModel(),
      onModelReady: (model) => model.initialise(),
      child: ScreenTypeLayout(
        mobile: OrientationLayout(
          //ioc view
          portrait: (context) => HomeMobilePortrait(),
          landscape: (context) => HomeMobileLandscape(),
        ),
        tablet: HomeViewTablet(),
      ),
    );

BaseWidget need provider ViewModel type . why not create instance according to this ViewModel type ? like java invoke.

abstract class BaseModelWidget<T> extends Widget {
  @protected
  Widget build(BuildContext context, T model);

  @override
  DataProviderElement<T> createElement() => DataProviderElement<T>(this);
}

//
class DataProviderElement<T> extends ComponentElement {
  DataProviderElement(BaseModelWidget widget) : super(widget);

  @override
  BaseModelWidget get widget => super.widget;

  @override
  Widget build() => widget.build(this, Provider.of<T>(this));

  @override
  void update(BaseModelWidget newWidget) {
    super.update(newWidget);
    assert(widget == newWidget);
    rebuild();
  }
}

BaseModelWidget Does it really have a meaning, more often, I think it just comes from provider .

Sometimes, I get confused by its name, whether this is a widget or a viewmodel or even a model .

Please forgive me, this bad English

BelongsH avatar Nov 06 '20 08:11 BelongsH