import Vue from 'vue' import { parsePage } from './parser/page-parser' import { parseComponent } from './parser/component-parser' import { handleRelations } from './polyfill/relations' import polyfill from './polyfill/index' global.__wxRoute = '' global.__wxComponents = Object.create(null) global.__wxVueOptions = Object.create(null) export function Page (options) { const pageOptions = parsePage(options) pageOptions.mixins.unshift(polyfill) pageOptions.mpOptions.path = global.__wxRoute global.__wxComponents[global.__wxRoute] = pageOptions } function initRelationsHandler (vueComponentOptions) { // linked 需要在当前组件 attached 之后再执行 if (!vueComponentOptions.onServiceAttached) { vueComponentOptions.onServiceAttached = [] } vueComponentOptions.onServiceAttached.push(function onServiceAttached () { handleRelations(this, 'linked') }) } export function Component (options) { const componentOptions = parseComponent(options) componentOptions.mixins.unshift(polyfill) componentOptions.mpOptions.path = global.__wxRoute initRelationsHandler(componentOptions) global.__wxComponents[global.__wxRoute] = componentOptions } export function Behavior (options) { return options } export const nextTick = Vue.nextTick export default uni.__$wx__