Javascript 是否可以使用MobX而不进行反应?

Javascript 是否可以使用MobX而不进行反应?,javascript,mobx,Javascript,Mobx,我喜欢MobX。 我想在原生JavaScript中使用它。 我尝试添加CDN 然后我尝试用MobX语法编写一个类: class MyStore { @observable data = 'foo' } const myStore = new MyStore(); 但我有错误: SyntaxError: illegal character 对于@和: ReferenceError: exports is not defined 从文件内部mobx.js 因此,如果没有反应,没有钝化/传输

我喜欢MobX。 我想在原生JavaScript中使用它。 我尝试添加CDN 然后我尝试用MobX语法编写一个类:

class MyStore {
  @observable data = 'foo'
}
const myStore = new MyStore();
但我有错误:

SyntaxError: illegal character
对于
@
和:

ReferenceError: exports is not defined
从文件内部
mobx.js

因此,如果没有反应,没有钝化/传输,这似乎是不可能的,是吗? 如果没有,还有其他选择吗


谢谢大家!

是的,您可以使用MobX而不使用React,但在您的示例中,您使用了属于ES.Next的decorators语法,浏览器本机不支持该语法,并且需要transpiler(例如Babel)


如果您想在浏览器中直接使用MobX而不使用装饰程序,那么以下说明对您很有用:

正如@someone235所说,这是可能的

下面是一个没有任何反应的示例:

这就是代码,尽管我无法在中启用装饰器,所以下面的示例不起作用。链接确实有效

const{observable,computed,autorun}=mobx;
类MyStore{
@可观测数据='foo'
}
const myStore=新myStore();
自动运行(()=>{
console.log(myStore.data);
document.getElementById('log')。innerHTML+=myStore.data+“
” }) myStore.data='bar'

日志


不需要装饰师。您可以尝试Mobx 4方法:

import { decorate, observable} from "mobx"
class MyStore {
  data = 'foo'
}
decorate(City, {
    data: observable,
})
const myStore = new MyStore();

这里有更多详细信息

如果您需要decorator语法,您不需要React,但需要Babel(
Babel-preset-mobx
preset)