React Mobx示例

index.js

import React from 'react';
import ReactDOM from 'react-dom';
import { observable, computed, useStrict, action } from 'mobx';
import App from './App';
import * as serviceWorker from './serviceWorker';class VM{@observable firstName = '';//设置属性为可观察的@observable lastName = '';//设置计算属性@computed get fullName() {return this.firstName + this.lastName;}//设置动作@action setName(key, event) {this[key] = event.target.value;}//设置动作,注意,与 @action 不同的是,@action.bound 不需要一个name参数,名称将始终基于动作绑定的属性@action.bound resetName() {this.firstName = '';this.lastName = '';}
}//将VM类传入App
ReactDOM.render(,document.getElementById('root')
);serviceWorker.unregister();

App.js

import React, { Component } from 'react';
import { observer } from 'mobx-react';//设置App为观察者
@observer
class App extends Component{render(){const vm = this.props.vm;return (

First Name vm.setName('firstName', e)} />

Last Name vm.setName('lastName', e)} />

Full Name {vm.fullName}

)} }export default App;

说明:

如果去掉resetName装饰器的bound,则会报错如下:


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部