Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | 4x 4x 4x 4x | import { setUrlQuery, variableTypeDetection } from '@/utils'
/**
* 获取wx当前route的方法
* 必须是在进入Page或Component构造函数内部才能够获取到currentPages
* 否则都是在注册Page和Component时执行的代码,此时url默认返回'App'
*/
export function getCurrentRoute() {
if (!variableTypeDetection.isFunction(getCurrentPages)) {
return ''
}
const pages = getCurrentPages() // 在App里调用该方法,页面还没有生成,长度为0
if (!pages.length) {
return 'App'
}
const currentPage = pages.pop()
return setUrlQuery(currentPage.route, currentPage.options)
}
/**
* 后退时需要计算当前页面地址
* @param delta 返回的页面数,如果 delta 大于现有页面数,则返回到首页
*/
export function getNavigateBackTargetUrl(delta: number | undefined) {
if (!variableTypeDetection.isFunction(getCurrentPages)) {
return ''
}
const pages = getCurrentPages() // 在App里调用该方法,页面还没有生成,长度为0
if (!pages.length) {
return 'App'
}
delta = delta || 1
const toPage = pages[pages.length - delta]
return setUrlQuery(toPage.route, toPage.options)
}
/**
* 返回包含id、data字符串的标签
* @param e wx BaseEvent
*/
export function targetAsString(e: WechatMiniprogram.BaseEvent): string {
const id = e.currentTarget?.id ? ` id="${e.currentTarget?.id}"` : ''
const dataSets = Object.keys(e.currentTarget.dataset).map((key) => {
return `data-${key}=${e.currentTarget.dataset[key]}`
})
return `<element ${id} ${dataSets.join(' ')}/>`
}
|