From 22ff4d849f9cf4f223f707807ad66e651f7bc7ef Mon Sep 17 00:00:00 2001 From: qiang Date: Thu, 27 May 2021 18:14:35 +0800 Subject: [PATCH] feat(h5): useDocumentTitle --- packages/uni-app/dist/uni-app.cjs.js | 2 +- packages/uni-app/dist/uni-app.es.js | 2 +- packages/uni-h5/dist/uni-h5.cjs.js | 10 +++++++++- packages/uni-h5/dist/uni-h5.es.js | 11 ++++++++++- .../uni-h5/src/framework/components/page/index.ts | 5 ++++- packages/uni-h5/src/helpers/useDocumentTitle.ts | 9 +++++++++ 6 files changed, 34 insertions(+), 5 deletions(-) create mode 100644 packages/uni-h5/src/helpers/useDocumentTitle.ts diff --git a/packages/uni-app/dist/uni-app.cjs.js b/packages/uni-app/dist/uni-app.cjs.js index ccde10325..a834ee3a7 100644 --- a/packages/uni-app/dist/uni-app.cjs.js +++ b/packages/uni-app/dist/uni-app.cjs.js @@ -117,7 +117,7 @@ const onError = /*#__PURE__*/ createHook(ON_ERROR); const onThemeChange = /*#__PURE__*/ createHook(ON_THEME_CHANGE); const onPageNotFound = /*#__PURE__*/ createHook(ON_PAGE_NOT_FOUND); const onUnhandledRejection = /*#__PURE__*/ createHook(ON_UNHANDLE_REJECTION); - +// export const onLoad = /*#__PURE__*/ createHook(ON_LOAD) const onReady = /*#__PURE__*/ createHook(ON_READY); const onUnload = /*#__PURE__*/ createHook(ON_UNLOAD); const onResize = /*#__PURE__*/ createHook(ON_RESIZE); diff --git a/packages/uni-app/dist/uni-app.es.js b/packages/uni-app/dist/uni-app.es.js index 32fba22ad..00ab56a62 100644 --- a/packages/uni-app/dist/uni-app.es.js +++ b/packages/uni-app/dist/uni-app.es.js @@ -82,7 +82,7 @@ const onError = /*#__PURE__*/ createHook(ON_ERROR); const onThemeChange = /*#__PURE__*/ createHook(ON_THEME_CHANGE); const onPageNotFound = /*#__PURE__*/ createHook(ON_PAGE_NOT_FOUND); const onUnhandledRejection = /*#__PURE__*/ createHook(ON_UNHANDLE_REJECTION); - +// export const onLoad = /*#__PURE__*/ createHook(ON_LOAD) const onReady = /*#__PURE__*/ createHook(ON_READY); const onUnload = /*#__PURE__*/ createHook(ON_UNLOAD); const onResize = /*#__PURE__*/ createHook(ON_RESIZE); diff --git a/packages/uni-h5/dist/uni-h5.cjs.js b/packages/uni-h5/dist/uni-h5.cjs.js index 35be23038..69fce916a 100644 --- a/packages/uni-h5/dist/uni-h5.cjs.js +++ b/packages/uni-h5/dist/uni-h5.cjs.js @@ -10865,6 +10865,12 @@ function createRightWindowTsx(rightWindow, layoutState, windowState) { }, windowState), null, 16)])], 12, ["data-show"]), [[vue.vShow, layoutState.showRightWindow || layoutState.apiShowRightWindow]]); } } +function useDocumentTitle(pageMeta) { + function update() { + document.title = pageMeta.navigationBar.titleText; + } + vue.watchEffect(update); +} function hexToRgba(hex) { let r; let g2; @@ -11330,7 +11336,9 @@ function createPageRefreshTsx(refreshRef, pageMeta) { var index$2 = defineSystemComponent({ name: "Page", setup(_props, ctx) { - const {navigationBar} = providePageMeta(getStateId()); + const pageMeta = providePageMeta(getStateId()); + const navigationBar = pageMeta.navigationBar; + useDocumentTitle(pageMeta); return () => vue.createVNode("uni-page", null, __UNI_FEATURE_NAVIGATIONBAR__ && navigationBar.style !== "custom" ? [vue.createVNode(PageHead), createPageBodyVNode(ctx)] : [createPageBodyVNode(ctx)]); } }); diff --git a/packages/uni-h5/dist/uni-h5.es.js b/packages/uni-h5/dist/uni-h5.es.js index 5db11bcc3..00f833277 100644 --- a/packages/uni-h5/dist/uni-h5.es.js +++ b/packages/uni-h5/dist/uni-h5.es.js @@ -19966,6 +19966,13 @@ const UniServiceJSBridge$1 = /* @__PURE__ */ extend(ServiceJSBridge, { UniViewJSBridge.subscribeHandler(pageId + "." + event, args, pageId); } }); +function useDocumentTitle(pageMeta) { + function update() { + document.title = pageMeta.navigationBar.titleText; + } + watchEffect(update); + onActivated(update); +} function hexToRgba(hex) { let r; let g2; @@ -20679,7 +20686,9 @@ function createPageRefreshTsx(refreshRef, pageMeta) { var index$2 = defineSystemComponent({ name: "Page", setup(_props, ctx) { - const {navigationBar} = providePageMeta(getStateId()); + const pageMeta = providePageMeta(getStateId()); + const navigationBar = pageMeta.navigationBar; + useDocumentTitle(pageMeta); return () => createVNode("uni-page", null, __UNI_FEATURE_NAVIGATIONBAR__ && navigationBar.style !== "custom" ? [createVNode(PageHead), createPageBodyVNode(ctx)] : [createPageBodyVNode(ctx)]); } }); diff --git a/packages/uni-h5/src/framework/components/page/index.ts b/packages/uni-h5/src/framework/components/page/index.ts index 8ac5ec70a..bfac8f7cb 100644 --- a/packages/uni-h5/src/framework/components/page/index.ts +++ b/packages/uni-h5/src/framework/components/page/index.ts @@ -7,6 +7,7 @@ import { SetupContext, } from 'vue' import { defineSystemComponent } from '@dcloudio/uni-components' +import { useDocumentTitle } from '../../../helpers/useDocumentTitle' import PageHead from './pageHead' import PageBody from './pageBody' @@ -16,7 +17,9 @@ import { getStateId } from '../../../helpers/dom' export default defineSystemComponent({ name: 'Page', setup(_props, ctx) { - const { navigationBar } = providePageMeta(getStateId()) + const pageMeta = providePageMeta(getStateId()) + const navigationBar = pageMeta.navigationBar + useDocumentTitle(pageMeta) return () => createVNode( 'uni-page', diff --git a/packages/uni-h5/src/helpers/useDocumentTitle.ts b/packages/uni-h5/src/helpers/useDocumentTitle.ts new file mode 100644 index 000000000..f9a8f2c12 --- /dev/null +++ b/packages/uni-h5/src/helpers/useDocumentTitle.ts @@ -0,0 +1,9 @@ +import { watchEffect, onActivated } from 'vue' + +export function useDocumentTitle(pageMeta: UniApp.PageRouteMeta) { + function update() { + document.title = pageMeta.navigationBar.titleText! + } + watchEffect(update) + onActivated(update) +} -- GitLab