Bolero 0.20 released | Bolero: F# in WebAssembly
source link: https://fsbolero.io/blog/20220419-bolero-0-20-released
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Bolero 0.20 released
A new HTML syntax on .NET 6
We are happy to announce the release of Bolero version 0.20. Bolero is a library that enables writing full-stack applications in F#, whose client side runs in WebAssembly using Blazor.
The main highlight of this release is a new syntax for writing HTML in F# that is both visually lighter and more efficient at runtime.
Install the latest project template with:
dotnet new -i Bolero.Templates::0.20.4
Changes
Bolero now requires .NET 6.
#249 Use computation expressions for the HTML syntax. Instead of functions taking lists of attributes and children, HTML now looks like this:
concat { "Welcome to " a { attr.href "https://fsbolero.io" attr.id "link" "Bolero" } "!" }
This new syntax also applies to Blazor components. For example, to use a MatBlazor button:
comp<MatButton> { attr.callback "OnClick" (fun _ -> dispatch ButtonClicked) "Link" => "https://fsbolero.io" "Target" => "_blank" "Click me!" }
The
virtualize
component useslet!
to bind the current item:let numbers = [ 1 .. 100 ] ul { virtualize.comp { virtualize.itemSize 20f let! item = virtualize.items numbers li { $"Item #{item}" } } }
In addition to being slightly more concise, this syntax is more efficient performance-wise; see the linked issue for more details.
The values
empty
andattr.empty
are now functions:empty()
/attr.empty()
.CSS classes from multiple calls to
attr.classes
and/orattr.``class``
are no longer combined together into a singleclass
attribute. This feature was incompatible with the code inlining that makes the new syntax performant.To combine CSS classes, combine them with
String.concat " "
and pass the result toattr.``class``
.Bolero's assemblies are now trimmed during publish in WebAssembly mode, for a smaller download size.
Happy coding!
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK