| import { createApp } from 'vue'; | 
|   | 
| import '@nutui/nutui-taro/dist/style.css'; | 
| import './app.scss'; | 
| import '@/utils/setConfig'; | 
| import { setupStore } from '@/stores'; | 
|   | 
| import { useSystemStore } from '@/stores/modules/system'; | 
| import { useUserStore } from '@/stores/modules/user'; | 
| import Taro from '@tarojs/taro'; | 
| import { VueQueryPlugin, VueQueryPluginOptions } from '@tanstack/vue-query'; | 
| import { myClient } from '@/constants/query'; | 
|   | 
| window.uni = Taro; | 
|   | 
| function updateVersions() { | 
|   const updateManager = Taro.getUpdateManager(); | 
|   updateManager.onCheckForUpdate(function (_res) { | 
|     // 请求完新版本信息的回调 | 
|   }); | 
|   updateManager.onUpdateReady(function () { | 
|     Taro.showModal({ | 
|       title: '更新提示', | 
|       content: '新版本已经准备好,是否重启应用?', | 
|       success: function (res) { | 
|         if (res.confirm) { | 
|           // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启 | 
|           updateManager.applyUpdate(); | 
|         } | 
|       }, | 
|     }); | 
|   }); | 
|   updateManager.onUpdateFailed(function () { | 
|     // 新的版本下载失败 | 
|     Taro.showToast({ | 
|       title: '新的版本下载失败,请重新进入', | 
|       icon: 'none', | 
|       duration: 2000, | 
|     }); | 
|   }); | 
| } | 
|   | 
| const App = createApp({ | 
|   // 可以使用所有的 Vue 生命周期方法 | 
|   | 
|   mounted() {}, | 
|   | 
|   // 对应 onLaunch | 
|   onLaunch(options) { | 
|     // 如果是收藏进入 | 
|     if (options.query.collect) { | 
|       Taro.reLaunch({ | 
|         url: '/pages/index/index', | 
|       }); | 
|       return; | 
|     } | 
|     // 将启动参数放进到全局去 | 
|     const system = useSystemStore(); | 
|     system.init(options); | 
|     system.setInfo(Taro.getSystemInfoSync()); | 
|   }, | 
|   | 
|   // 对应 onShow | 
|   onShow(options) { | 
|     updateVersions(); | 
|   }, | 
|   | 
|   // 对应 onHide | 
|   onHide() {}, | 
|   // 入口组件不需要实现 render 方法,即使实现了也会被 taro 所覆盖 | 
| }); | 
|   | 
| setupStore(App); | 
|   | 
| import { IconFont } from '@nutui/icons-vue-taro'; | 
|   | 
| App.component('IconFont', IconFont); // 全局组件 | 
|   | 
| const vueQueryPluginOptions: VueQueryPluginOptions = { | 
|   queryClient: myClient, | 
| }; | 
|   | 
| App.use(VueQueryPlugin, vueQueryPluginOptions); | 
|   | 
| export default App; |