Closed amnextking closed 5 years ago
@amnextking avvw只是使用了vue语法特性生成每个apicloud的页面,但实际上他的运行原理还是apicloud的单独页面生命周期方式,而不是vue的单页面spa方式,所以你无法类似vue那样只全局注册一次函数,即便你全局注册了函数,也只是当前页面有效,如果你执着要全局加载自定义组件,那么可以这样:
但修改前必须将你的组件变成原始window组件注册,并在head头部,script标签引入
<script type="text/javascript" src="toast.min.js"></script>
然后再修改page.ejs
// Apicloud initialize apiready = function () { Vue.prototype.$ac = api // Vue global apicloud API page = new Vue({ el: '#page', components: { 'vue': <%= htmlWebpackPlugin.options.name %>Vue, 'toast': Toast // toast组件全局window注册的函数名 }, mounted: function () { Origami.fastclick(document.body) // You must use fastclick on the mobile } }) }
所以个人建议自定义组件,直接在需要的页面import引入比较好
另外请问如何不使用APICloud Studio来调用一些APICloud的模块呢?
关于这个问题,其实你只需要弄懂apicloud的console命令,那么你用什么IDE都是一样的,类似你要弄懂apicloud-cli
感谢回复,主要是由于Toast用的太频繁了,所以会想全局注册。
我写了一个toast组件(类似此篇文章),现在需要全局注册此组件,避免反复注册。 但是我尝试了两种方法都没法实现,一在src目录下新建main.js,二在page.ejs中调用全局注册函数。 请指教如何处理呢? 另外请问如何不使用APICloud Studio来调用一些APICloud的模块呢?