运行平台:微信小程序
ts模板的main.ts使用的挂载语句是
import Vue from 'vue'
import App from './App.vue'
new App().$mount()
这时编译后小程序没问题。但如果换成new Vue()的方式,或者想引入vuex或其他库的话要改成
import Vue from 'vue'
import App from './App.vue'
new Vue({
store,
...App
}).$mount()
这时当我编译时App.vue下的方法都没有执行,onLaunch(), onShow(), onHide()都失效了,当然globalData也变成空对象。
研究了一下,只发现如果App.vue里不使用Vue.extend()来export的话可以用new Vue()的方式,但这样TypeScript 不能正确推断 Vue 组件选项中的类型,this又报错了。
请教一下有解决方案吗?
1 个回复
Howee (作者)
好吧,说实话对这里没抱什么期待。自己研究了一下,既然在new Vue()时使用了展开操作符...,那么store也可以在App.vue里引入,然后main.ts里引入store挂载到全局实例上。
但是由于App的声明文件里不存在store,需要自己引用声明文件修复一下。
若是再严谨点可以引入Vuex的声明替换掉AnyObject。