What's new in Blazor ???
Blazor ??? is available! This update focuses on ADRs (ancestor-descendent relationships). In addition, we added some improvements to the debugging process. More under the cut! 3r33333.
3r33333. 3r33333. 3r33333.
3r33333.
A small introduction or "What is Blazor?" . 3r33333.
3r33333.
This is what's new in the Blazor ???:
version.
3r33333.
3r33939.
3r3398. Cascading values and parameters 3-3-399.
3r3398. Debugging enhancements 3–3–399.
3r33333.
A complete list of changes in this version can be found in 3r3336. Blazor ???
release notes. . 3r33333.
3r33333.
3r33357. Get the Blazor ???
3r33333.
Install the following: 3r36533.
3r33333.
3r350.
3r3398. .NET Core 2.1 SDK (??? or later). 3r399.
3r3398. Visual Studio 2017 (15.9 or later) with ASP.NET. 3r399.
3r3398. The last Blazor Language Services extension from Visual Studio Marketplace. 3r399.
3r3398. Command line blazor templates:
3r33333.
3r33333. 3r33333. dotnet new -i Microsoft.AspNetCore.Blazor.Templates 3r33333. 3r33333.
You can find instructions, documents and manuals for Blazor at blazor.net . 3r33333.
3r33333.
3r33357. Upgrade an existing project to Blazor ???
3r33333.
To upgrade your Blazor ??? project to ???:
3r33333.
3r33939.
3r3398. Set the prerequisites listed above. 3r399.
3r3398. Upgrade Blazor packages and .NET CLI tool links to ???. The updated Blazor project file should look like this:
3r33333.
3r33333. 3r33333.
3r3111. netstandard???r3r3112.
3r3114. dotnet
3r3117. blazor serve
???r3121.
3r3128.
3r33130.
3r33132.
3r3133.
3r33333. 3r33333. 3r33333.
This is it! Now you can appreciate the latest Blazor features. 3r33333.
3r33333.
3r33357. Cascading values and parameters
3r33333.
Blazor components can take parameters that can be used to transfer data to a component and affect the rendering of the component. Parameter values are provided from the parent component to the child component. Sometimes, however, it is inconvenient to transfer data from the ancestor component to the descendant component, especially when there are many layers between them. Cascading values and parameters solve this problem by providing a convenient way for the parent component to provide a value that is then available to all descendant components. They also provide a great way to coordinate components. 3r33333.
3r33333.
For example, if you want to provide some information about a topic for a specific part of your application, you can pass the appropriate styles and classes from component to component, but that would be tedious and time consuming. Instead, the common parent component can provide information about the topic as a cascading value, which descendants can take as a cascading parameter, and then use it as necessary. 3r33333.
3r33333.
Suppose the class is ThemeInfo
conveys all the information about the topic you want to convey across the component hierarchy so that all the buttons in this part of your application have the same appearance:
3r33333.
3r33333. 3r33333. public class ThemeInfo
{
public string ButtonClass {get; set;}
} 3r33333. 3r33333.
The parent component can provide a cascade value using the 3-333175 component. CascadingValue . Component CascadingValue
wraps the subtree of the component hierarchy and sets one value that will be available to all components inside that subtree. For example, we could specify subject information as a cascading parameter for all components that make up the body of the layout:
3r33333.
3r33333. 3r33333. @inherits BlazorLayoutComponent
3r3185.
3r3187.
3r33375.
3r3192.
3r3194.
3r3196. About
3r33375.
3r3202.
3r3204.
@Body
3r33375.
3r33333.
3r33375.
@functions {
ThemeInfo theme = new ThemeInfo {ButtonClass = "btn-success"};
} 3r33333. 3r33333.
To use cascading values, components can declare cascading parameters using the[CascadingParameter]attribute. . Cascading values are tied to cascading parameters by type. In the following example, the Counter component is modified to have a cascading parameter that binds to the cascade value of ThemeInfo, which is then used to set the class for the button. 3r33333.
3r33333.
3r33333. 3r33333. @page "/counter"
Counter
3r33232. Current count: @currentCount
Click me
@functions {
int currentCount = 0;
[CascadingParameter]protected ThemeInfo ThemeInfo {get; set;}
void IncrementCount ()
{
currentCount ++;
}
} 3r33333. 3r33333.
When we launch the application, we see that the new style is being applied:
3r33333.

3r33333.
Cascading parameters also allow components to interact across a component hierarchy. For example, suppose you have a TabSet component that contains several Tab components:
3r33333.
3r33333. 3r33333.
First tab
This is the first tab.
3r3304.
@if (showSecondTab)
{
Second tab
You can toggle me.
3r3304.
}
Third tab
3r33232.
Toggle second tab
3r3302.
3r3304.
3r3306. 3r33333. 3r33333. 3r33333.
In this example, the child components Tab are not explicitly passed as parameters to the TabSet. Instead, they are simply part of the child contents of the TabSet. But TabSet still needs to know about each tab so that it can display headers and active tabs. To enable this coordination, without requiring any specific communication with the user, the TabSet component can present itself as a cascading value, which can then be picked up by the components of the Tab component:
3r33333.
In TabSet.cshtml:
3r33333.
3r33333. 3r33333.
3r33333. 3r33333. 3r33333. 3r33333.
This allows Tab's parent components to capture the containing TabSet as a cascading parameter, so they can add themselves to the TabSet and coordinate on which Tab is active:
3r33333.
In Tab.cshtml:
3r33333.
3r33333. 3r33333.[CascadingParameter]TabSet ContainerTabSet {get; set;} 3r33333. 3r33333.
3r33333.
See a complete sample of the TabSet here . 3r33333.
3r33333.
3r33357. Debug improvements
3r33333.
In Blazor 0.5.? we added support for debugging Blazor client applications in a browser. . Although this experiment demonstrated that debugging .NET applications in a browser is possible, it was a rather dangerous experience. Now you can more reliably install and remove breakpoints, and the reliability of step-by-step debugging has been improved. 3r33333.
3r33333.
3r33333. 3r33375.
! function (e) {function t (t, n) {if (! (n in e)) {for (var r, a = e.document, i = a.scripts, o = i.length; o-- ;) if (-1! == i[o].src.indexOf (t)) {r = i[o]; break} if (! r) {r = a.createElement ("script"), r.type = "text /jаvascript", r.async =! ? r.defer =! ? r.src = t, r.charset = "UTF-8"; var d = function () {var e = a.getElementsByTagName ("script")[0]; e.parentNode.insertBefore (r, e)}; "[object Opera]" == e.opera? a.addEventListener? a.addEventListener ("DOMContentLoaded", d,! 1): e.attachEvent ("onload", d ): d ()}}} t ("//mediator.mail.ru/script/2820404/"""_mediator") () (); 3r33333.
3r33375.
It may be interesting
weber
Author21-11-2018, 10:38
Publication DateMicrosoft Azure / .NET / C#
Category- Comments: 0
- Views: 411
Here we introduce our top coupons that will help you for online shopping at discountable prices.Revounts bring you the best deals that slash the bills.If you are intrested in online shopping and want to save your savings then visit our site for best experience.