# Component You can write an application without the need to use for Component. This is totally optional, but it serves as a helper trait for parts of your application to have some consistency. ```rust pub trait Component { fn update(&mut self, msg: MSG) -> Effects; fn view(&self) -> Node; } ``` ```rust impl Component for FieldWidget{ fn update(&mut self, msg: Msg) -> Effects{ // --snip-- } fn view(&self) -> Node{ // --snip } } ``` ## Effects Effects is a way to contain Msg to be processed in the application that mounts it.