快应用开发总结

开发工具下载https://www.quickapp.cn/docCenter/IDEPublicity

调试工具下载:https://statres.quickapp.cn/quickapp/quickapp/201806/file/quickapp_debugger.apk

实际开发中,仅这两个就够了。该ide的用法等等与vscode一样,调试要么用usb连接,要么让其与所在的开发环境在同一个局域网内,通过“扫码安装”或“在线更新”获取到最新apk内容,点击“开始调试”可在pc端同步调试。

详细功能及使用:https://doc.quickapp.cn

踩坑记录:

1.div下不可直接写文本内容,需用<span>或<text>标签包裹

2.<template>的第一层div为其根元素,不可添加if条件判断

3.部分css属性暂不支持,如margin: auto、overflow、white-space、max-width、box-shadow、z-index等等,布局直接用flex

4.父子组件消息传递:

  对不做更改的常规数据传递,用props即可,同vue用法

  父传子用$broadcast:先在子组件注册监听事件A【this.$on('A', this.A)】,在父组件通知【this.$broadcast('A',params)】

  子传父用$dispatch:先在父组件注册监听事件A【this.$on('A', this.A)】,在子组件通知【this.$dispatch('A', params )】

  详情:https://doc.quickapp.cn/tutorial/framework/parent-child-component-communication.html

5.路由返回:

  对于常规业务来讲router.back()基本够用,但假设这样一种场景,有如下三个页面

A【主页】、B【个人中心页,需登录】、C【注册登录页】,其中A、B页有公用底部Tab可相互跳转,C页无

在A页通过底部Tab跳到B页,在B页做登录检测,如果登录展示B页内容,如果未登录则跳转至C页,此时如果在C页点击左上角返回按钮,页面将一直在B/C页循环跳转,但我们希望在C页点击返回按钮后跳到A页,那么该如何实现呢?

起初,我们意图在C页或A页里通过官方提供的router.clear()方法达到C页顺利跳A的效果,但router.clear()方法实际并没任何作用;所以最后,我们在B页未登录的情况下,重定向到A页,并挂载一个全局变量JUMP_LOGIN,伪代码如下:

B页:

onShow() {

if (isLogin){

  doActionPageB()

} else {

  router.replace({uri: '/page/A'})

  this.$app.jumpLogin = true

}

}

A页:

onShow() {

if (this.$app.jumpLogin) {

  return router.jump({uri: '/page/C'})

} else {

  doActionPageA()

}

}

C页:

onShow() {

this.$app.jumpLogin = false

doActionPageC()

}

6: 神策埋点

神策虽然提供了sensor.login()这个方法以便用当前uid来替换神策自己提供的匿名id,但实际却并不会实时生效,其对应的distinct_id字段发送的始终是上个登录用户的uid而并非当前用户的。解决方案是,弃用神策自带的sensro.login()方法,自定义一个uid方法,其值通过全局变量$uid来传递,$uid取值来自于本地存储的storage

原文地址:https://www.cnblogs.com/ganmy/p/11712714.html