请问,vue中可以通过VUE.prototype.plugin=plugin方式让所有组件中都能直接调用plugin的方法,react中有没有类似的方式?
class Demo extends Component {
constructor(props) {
super(props)
}
componentWillMount() {
window.temp = 'demo'
}
}
单说 react
的话可以使用 context,但在官方文档中并不建议的使用 context
,因为
If you want your application to be stable, don't use context. It is an experimental API and it is likely to break in future releases of React.
同时它也建议你使用 Redux
或是 Mobx
。
创建公用的js 公用方法 export 然后在任意js里面引用就可以了 比如常用的格式转好 判断 排序等方法
公用变量 在公用js里设置全局变量 将获取改变变量写成方法 供其他js调用即可
react-redux 的公用变量改变会触发componentWillReceiveProps方法
react不是类的继承机制吗,那可不可以class myPage extends React.component,myPage这个类继承react组件,我在myPage类上加方法,然后其他组件全都继承自myPage,如class a extends myPage,这样是不是子类都能继承myPage上的方法,达到全局方法的效果呢
6 回答3k 阅读✓ 已解决
6 回答2.3k 阅读
5 回答6.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
2 回答2k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
2 回答2.1k 阅读✓ 已解决
总感觉上面的同学连提问者的意图都没有明白。
确实,在 vue 中可以通过
VUE.prototype.plugin=plugin
方式让所有组件中都能直接调用plugin
的方法,因为最后咱们会执行new vue()
的方式来启动框架,这样咱们在组件中可以方便的使用类似this.lodash.xxx()
这样一些自定义的方法了。但是在 React 中,启动框架的方式是通过执行
ReactDOM.render()
这样一种方式来进行的,咱们没有一个全局的对象,因而无法通过类似React.prototype.xxx = xxx
的方式来进行设置。但还有一个替代的方法,就是通过在入口文件那设置全局变量或全局方法的方式来代替:
比如我希望能有一个全局打印函数 p,那么我这样来设置:
这样就可以全局使用它了