mobx学习笔记(零基础)

一、了解mobx

1、mobx是什么

Simple,scalable state management 简单可扩展的状态管理

2、mobx优势
  1. 开发难度低
  2. 开发代码量少
  3. 渲染性能好
3、mobx的核心思想
  1. 状态变化引起的副作用应该被自动触发;
  2. 单项数据流模式:Action -> State -> Reaction;

二、基础语法知识

1、准备工作:

需要先了解一下 webpack和babel :https://blog.csdn.net/wuya1028/article/details/120427597

2、定义类 - class
	// 定义 Person 类
	class Person {
	    name() {
	        return 'Person';
	    }
	    say() {
	        return `I'm ${this.name()}`;
	    }
	}
	
	// Student 继承 Person
	class Student extends Person {
	    name() {
	        return 'Student';
	    }
	}
	
	document.write(new Person().say() + '<br/>');
	document.write(new Student().say());

运行结果
在这里插入图片描述

3、修饰器 - decorator

在声明阶段实现类和类成员注解的一种语法,本质是一个函数。

  1. 需安装 babel-plugin-transform-decorators-legacy

    	npm install @babel/plugin-proposal-decorators -D
    
  2. package.json 中配置

    	"babel": {
    		"plugins": [
    			["@babel/plugin-proposal-decorators",{"legacy": true}]
    		]
    	}
    

在这里插入图片描述

  1. 语法
    3.1 类修饰器
    fn(target)
    
    3.2 类属性成员的修饰器
    	function readonly (target, key, descriptor) {
    	    // target: 实例对象、key: 成员名称、descriptor: 描述符
    	    console.log(target, key, descriptor)
    	    descriptor.writable = false;
    	    return descriptor;
    	}
    	
    	class Numberic {
    	    @readonly PI = 3.1415926;
    	}
    
    3.3 类方法修饰器
    	// 参数是否合法
    	function validateArgs (target, key, descriptor) {
    	    // target: 实例对象、key: 成员名称、descriptor: 描述符
    	    const func = descriptor.value;
    	    descriptor.value = function(...args) {
    	        for (let num of args) {
    	            if ('number' !== typeof num) {
    	                throw new Error(`"${num}" is not number`);
    	            }
    	        }
    	        return func.apply(this, args);
    	    }
    	}
    	
    	class Numberic {
    	    @validateArgs
    	    add(...nums) {
    	        return nums.reduce((p, n) => (p + n), 0)
    	    }
    	}
    	// 调用 add
    	new Numberic().add(1, 'x');
    
    在这里插入图片描述

其他:redux: 是面向函数; mobx:响应式编程风格

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值