| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215 |
- 'use strict';
- var vue = require('vue');
- var shared = require('@vue/shared');
- var uniShared = require('@dcloudio/uni-shared');
- function assertKey(key, shallow = false) {
- if (!key) {
- throw new Error(`${shallow ? 'shallowSsrRef' : 'ssrRef'}: You must provide a key.`);
- }
- }
- function proxy(target, track, trigger) {
- return new Proxy(target, {
- get(target, prop) {
- track();
- if (shared.isObject(target[prop])) {
- return proxy(target[prop], track, trigger);
- }
- return Reflect.get(target, prop);
- },
- set(obj, prop, newVal) {
- const result = Reflect.set(obj, prop, newVal);
- trigger();
- return result;
- },
- });
- }
- const globalData = {};
- const ssrServerRef = (value, key, shallow = false) => {
- assertKey(key, shallow);
- const ctx = vue.getCurrentInstance() && vue.useSSRContext();
- let state;
- if (ctx) {
- const __uniSSR = ctx[uniShared.UNI_SSR] || (ctx[uniShared.UNI_SSR] = {});
- state = __uniSSR[uniShared.UNI_SSR_DATA] || (__uniSSR[uniShared.UNI_SSR_DATA] = {});
- }
- else {
- state = globalData;
- }
- state[key] = uniShared.sanitise(value);
- // SSR 模式下 watchEffect 不生效 https://github.com/vuejs/vue-next/blob/master/packages/runtime-core/src/apiWatch.ts#L283
- // 故自定义ref
- return vue.customRef((track, trigger) => {
- const customTrigger = () => (trigger(), (state[key] = uniShared.sanitise(value)));
- return {
- get: () => {
- track();
- if (!shallow && shared.isObject(value)) {
- return proxy(value, track, customTrigger);
- }
- return value;
- },
- set: (v) => {
- value = v;
- customTrigger();
- },
- };
- });
- };
- const ssrRef = (value, key) => {
- {
- return ssrServerRef(value, key);
- }
- };
- const shallowSsrRef = (value, key) => {
- {
- return ssrServerRef(value, key, true);
- }
- };
- function getSsrGlobalData() {
- return uniShared.sanitise(globalData);
- }
- /**
- * uni 对象是跨实例的,而此处列的 API 均是需要跟当前实例关联的,比如 requireNativePlugin 获取 dom 时,依赖当前 weex 实例
- */
- function getCurrentSubNVue() {
- // @ts-ignore
- return uni.getSubNVueById(plus.webview.currentWebview().id);
- }
- function requireNativePlugin(name) {
- return weex.requireModule(name);
- }
- function formatAppLog(type, filename, ...args) {
- // @ts-ignore
- if (uni.__log__) {
- // @ts-ignore
- uni.__log__(type, filename, ...args);
- }
- else {
- console[type].apply(console, [...args, filename]);
- }
- }
- function formatH5Log(type, filename, ...args) {
- console[type].apply(console, [...args, filename]);
- }
- function resolveEasycom(component, easycom) {
- return typeof component === 'string' ? easycom : component;
- }
- /// <reference types="@dcloudio/types" />
- const createHook = (lifecycle) => (hook, target = vue.getCurrentInstance()) => {
- // post-create lifecycle registrations are noops during SSR
- !vue.isInSSRComponentSetup && vue.injectHook(lifecycle, hook, target);
- };
- const onShow = /*#__PURE__*/ createHook(uniShared.ON_SHOW);
- const onHide = /*#__PURE__*/ createHook(uniShared.ON_HIDE);
- const onLaunch =
- /*#__PURE__*/ createHook(uniShared.ON_LAUNCH);
- const onError =
- /*#__PURE__*/ createHook(uniShared.ON_ERROR);
- const onThemeChange =
- /*#__PURE__*/ createHook(uniShared.ON_THEME_CHANGE);
- const onPageNotFound =
- /*#__PURE__*/ createHook(uniShared.ON_PAGE_NOT_FOUND);
- const onUnhandledRejection = /*#__PURE__*/ createHook(uniShared.ON_UNHANDLE_REJECTION);
- const onExit = /*#__PURE__*/ createHook(uniShared.ON_EXIT);
- const onInit =
- /*#__PURE__*/ createHook(uniShared.ON_INIT);
- // 小程序如果想在 setup 的 props 传递页面参数,需要定义 props,故同时暴露 onLoad 吧
- const onLoad =
- /*#__PURE__*/ createHook(uniShared.ON_LOAD);
- const onReady = /*#__PURE__*/ createHook(uniShared.ON_READY);
- const onUnload = /*#__PURE__*/ createHook(uniShared.ON_UNLOAD);
- const onResize =
- /*#__PURE__*/ createHook(uniShared.ON_RESIZE);
- const onBackPress =
- /*#__PURE__*/ createHook(uniShared.ON_BACK_PRESS);
- const onPageScroll =
- /*#__PURE__*/ createHook(uniShared.ON_PAGE_SCROLL);
- const onTabItemTap =
- /*#__PURE__*/ createHook(uniShared.ON_TAB_ITEM_TAP);
- const onReachBottom = /*#__PURE__*/ createHook(uniShared.ON_REACH_BOTTOM);
- const onPullDownRefresh = /*#__PURE__*/ createHook(uniShared.ON_PULL_DOWN_REFRESH);
- const onSaveExitState =
- /*#__PURE__*/ createHook(uniShared.ON_SAVE_EXIT_STATE);
- const onShareTimeline =
- /*#__PURE__*/ createHook(uniShared.ON_SHARE_TIMELINE);
- const onAddToFavorites =
- /*#__PURE__*/ createHook(uniShared.ON_ADD_TO_FAVORITES);
- const onShareAppMessage =
- /*#__PURE__*/ createHook(uniShared.ON_SHARE_APP_MESSAGE);
- const onNavigationBarButtonTap = /*#__PURE__*/ createHook(uniShared.ON_NAVIGATION_BAR_BUTTON_TAP);
- const onNavigationBarSearchInputChanged = /*#__PURE__*/ createHook(uniShared.ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED);
- const onNavigationBarSearchInputClicked = /*#__PURE__*/ createHook(uniShared.ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED);
- const onNavigationBarSearchInputConfirmed = /*#__PURE__*/ createHook(uniShared.ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED);
- const onNavigationBarSearchInputFocusChanged =
- /*#__PURE__*/ createHook(uniShared.ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED);
- // for uni-app-x web
- const onPageHide = onHide;
- const onPageShow = onShow;
- function renderComponentSlot(slots, name, props = null) {
- if (slots[name]) {
- return slots[name](props);
- }
- return null;
- }
- Object.defineProperty(exports, 'capitalize', {
- enumerable: true,
- get: function () { return shared.capitalize; }
- });
- Object.defineProperty(exports, 'extend', {
- enumerable: true,
- get: function () { return shared.extend; }
- });
- Object.defineProperty(exports, 'hasOwn', {
- enumerable: true,
- get: function () { return shared.hasOwn; }
- });
- Object.defineProperty(exports, 'isPlainObject', {
- enumerable: true,
- get: function () { return shared.isPlainObject; }
- });
- exports.formatAppLog = formatAppLog;
- exports.formatH5Log = formatH5Log;
- exports.getCurrentSubNVue = getCurrentSubNVue;
- exports.getSsrGlobalData = getSsrGlobalData;
- exports.onAddToFavorites = onAddToFavorites;
- exports.onBackPress = onBackPress;
- exports.onError = onError;
- exports.onExit = onExit;
- exports.onHide = onHide;
- exports.onInit = onInit;
- exports.onLaunch = onLaunch;
- exports.onLoad = onLoad;
- exports.onNavigationBarButtonTap = onNavigationBarButtonTap;
- exports.onNavigationBarSearchInputChanged = onNavigationBarSearchInputChanged;
- exports.onNavigationBarSearchInputClicked = onNavigationBarSearchInputClicked;
- exports.onNavigationBarSearchInputConfirmed = onNavigationBarSearchInputConfirmed;
- exports.onNavigationBarSearchInputFocusChanged = onNavigationBarSearchInputFocusChanged;
- exports.onPageHide = onPageHide;
- exports.onPageNotFound = onPageNotFound;
- exports.onPageScroll = onPageScroll;
- exports.onPageShow = onPageShow;
- exports.onPullDownRefresh = onPullDownRefresh;
- exports.onReachBottom = onReachBottom;
- exports.onReady = onReady;
- exports.onResize = onResize;
- exports.onSaveExitState = onSaveExitState;
- exports.onShareAppMessage = onShareAppMessage;
- exports.onShareTimeline = onShareTimeline;
- exports.onShow = onShow;
- exports.onTabItemTap = onTabItemTap;
- exports.onThemeChange = onThemeChange;
- exports.onUnhandledRejection = onUnhandledRejection;
- exports.onUnload = onUnload;
- exports.renderComponentSlot = renderComponentSlot;
- exports.requireNativePlugin = requireNativePlugin;
- exports.resolveEasycom = resolveEasycom;
- exports.shallowSsrRef = shallowSsrRef;
- exports.ssrRef = ssrRef;
|