Enum dioxus_core::EventPriority[][src]

pub enum EventPriority {
    Immediate,
    High,
    Medium,
    Low,
}
Expand description

Priority of Event Triggers.

Internally, Dioxus will abort work that’s taking too long if new, more important work arrives. Unlike React, Dioxus won’t be afraid to pause work or flush changes to the RealDOM. This is called “cooperative scheduling”. Some Renderers implement this form of scheduling internally, however Dioxus will perform its own scheduling as well.

The ultimate goal of the scheduler is to manage latency of changes, prioritizing “flashier” changes over “subtler” changes.

React has a 5-tier priority system. However, they break things into “Continuous” and “Discrete” priority. For now, we keep it simple, and just use a 3-tier priority system.

  • NoPriority = 0
  • LowPriority = 1
  • NormalPriority = 2
  • UserBlocking = 3
  • HighPriority = 4
  • ImmediatePriority = 5

We still have a concept of discrete vs continuous though - discrete events won’t be batched, but continuous events will. This means that multiple “scroll” events will be processed in a single frame, but multiple “click” events will be flushed before proceeding. Multiple discrete events is highly unlikely, though.

Variants

Immediate

Work that must be completed during the EventHandler phase.

Currently this is reserved for controlled inputs.

High

“High Priority” work will not interrupt other high priority work, but will interrupt medium and low priority work.

This is typically reserved for things like user interaction.

React calls these “discrete” events, but with an extra category of “user-blocking” (Immediate).

Medium

“Medium priority” work is generated by page events not triggered by the user. These types of events are less important than “High Priority” events and will take precedence over low priority events.

This is typically reserved for VirtualEvents that are not related to keyboard or mouse input.

React calls these “continuous” events (e.g. mouse move, mouse wheel, touch move, etc).

Low

“Low Priority” work will always be preempted unless the work is significantly delayed, in which case it will be advanced to the front of the work queue until completed.

The primary user of Low Priority work is the asynchronous work system (Suspense).

This is considered “idle” work or “background” work.

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Feeds this value into the given Hasher. Read more

Feeds a slice of this type into the given Hasher. Read more

This method returns an Ordering between self and other. Read more

Compares and returns the maximum of two values. Read more

Compares and returns the minimum of two values. Read more

Restrict a value to a certain interval. Read more

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

This method returns an ordering between self and other values if one exists. Read more

This method tests less than (for self and other) and is used by the < operator. Read more

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

This method tests greater than (for self and other) and is used by the > operator. Read more

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Compare self to key and return true if they are equal.

Performs the conversion.

Performs the conversion.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.