Special pug tags
A list of special tags you can use in your pug code that generate code in your Dart code.
slot
A slot is a placeholder for a value. It will always take the value of the first valid child.
It is explained in more detailed in the flow control section.
function
Creates a function, and uses the body as what is returned. This allows you to pass functions as parameters.
Parameters
params:
@required Stringa list of comma separated parameters your function expects
Example, to pass a builder function to a LayoutBuilder:
layout-builder
function(as='builder' params='context, constraints')
container Layout constraints: $constraintsbuilder
Wraps its child in a builder function that exposes the current BuildContext.
Quite frequently you may need the current build context in your views:
passing it as a parameter into event handlers on your models
for Theme.of(context) and such common constructions
At any time you need the current context, you can add a builder shortcut. It will write a Builder widget with as its child a function that passes the current context, which you can then use in the child widgets.
Parameters
No parameters.
Example:
example(flutter-view)
builder
.welcome(color="theme(primary-color)") Hello!In the above example, if you leave out the builder, you will get an error because theme requires a context. See the generated Dart how it is used.
lifecycle
Note: Requires the flutter-view-widgets Dart library.
Widget that lets you listen to the lifecycle of the BuildContext it is part of.
Useful in combination with Model and ReactiveModel, since your model can be informed when the BuildContext is being initialized, built, rendered and disposed of.
Parameters
onInit:
FunctionCalled when initState is called on the widget stateonBuild:
Function(BuildContext)Called when build is called on the widget stateonRender:
FunctionCalled when render is called on the widgetonDispose:
FunctionCalled when dispose is called on the widget state
Example:
example(flutter-view :model[MyModel])
lifecycle(:on-dispose='model.onDisposed')
| ${model.message}!For more information, see monitoring the state lifecycle.
reactive
Note: Requires the flutter-view-widgets Dart library.
Re-renders its children if the Listenable it watches updates.
This widget was made to work well with the ScopedModel library. However when using flutter-view, you no longer need to use the ScopedModel and ScopedModelDescendant widgets. Instead, you pass a model into a flutter-view, and use the reactive tag to watch for changes.
Parameters
watch:
@required ListenableSomething to watch for updates. Usually a Model.child:
@required Objectthe rest of the widgets that get rerendered if the watched model updates
Implementation
The shortcut tag processor writes a ReactiveWidget, and an associated builder function which gets called to build the widget layout.
user-entry(flutter-view :user)
reactive(watch='user')
.name ${user.name}
.age ${user.age}In the above example, a user model is passed into the view. If a user is an instance of a Model, and user.notifyListeners() gets called, part below the reactive tag (the .name and .user containers) will automatically be re-rendered.
For more information and a more elaborate example, see Writing Reactive code.
Last updated