'a'
mh-two-thousand-and-two
2024-04-12 44d2c92345cd156a59fc327b3060292a282d2893
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
import {
  stringifyQuery
} from 'uni-shared/query'
 
import {
  initHooks,
  initUnknownHooks,
  PAGE_EVENT_HOOKS
} from 'uni-wrapper/util'
 
import parseComponent from 'uni-platform/runtime/wrapper/component-parser'
 
import { initWorkletMethods } from './util'
 
const hooks = [
  'onShow',
  'onHide',
  'onUnload'
]
 
hooks.push(...PAGE_EVENT_HOOKS)
 
export default function parseBasePage (vuePageOptions) {
  const [pageOptions, vueOptions] = parseComponent(vuePageOptions, true)
 
  initHooks(pageOptions.methods, hooks, vueOptions)
 
  pageOptions.methods.onLoad = function (query) {
    this.options = query
    const copyQuery = Object.assign({}, query)
    delete copyQuery.__id__
    this.$page = {
      fullPath: '/' + (this.route || this.is) + stringifyQuery(copyQuery)
    }
    this.$vm.$mp.query = query // 兼容 mpvue
    this.$vm.__call_hook('onLoad', query)
  }
  if (__PLATFORM__ === 'mp-baidu') {
    initUnknownHooks(pageOptions.methods, vuePageOptions, ['onInit', 'onReady'])
  } else {
    initUnknownHooks(pageOptions.methods, vuePageOptions, ['onReady'])
  }
  if (__PLATFORM__ === 'mp-weixin') {
    initWorkletMethods(pageOptions.methods, vueOptions.methods)
  }
 
  return pageOptions
}