生命周期experiment

WARNING

当前完整的生命周期还未全部实现,属于实验性功能

开放#[before_mount], #[mounted], #[before_update], #[updated]

#[before_mount]

在组件实例初始化完成之后立即调用。使用#[before_mount]标注在方法上。

写法

1impl MyView{
2    #[before_mount]
3    fn before_mount(){
4        println!("before mount!");
5    }
6}

#[mounted]

实例初始化完成后调用的选项

写法

1impl MyView{
2    #[mounted]
3    fn mounted(){
4        println!("mounted!");
5    }
6}

#[before_update]

在组件属性更新后,但还未重新渲染组件前被调用

写法

1impl Hello{
2    #[before_update]
3    fn do_before_update(&mut self) -> (){
4        println!("do before update => hello.gen!");
5        self.set_my_text(format!("{} => handle before", &self.my_text));
6    }  
7}

#[updated]

在组件属性更新后并已经重新对组件进行了渲染之后进行调用

写法

1impl Hello{
2    #[updated]
3    fn do_updated(&mut self){
4        println!("do updated => hello.gen!");
5        let new_val = self.get_count() + 1;
6        self.set_count(new_val);
7    }   
8}