diff --git a/packages/uni-cli-shared/src/mp/event.ts b/packages/uni-cli-shared/src/mp/event.ts index 22fa8cc23067896d3db74c309802e22f0d113757..b2d66246278a4390f6e809d29bc6e2e916a87592 100644 --- a/packages/uni-cli-shared/src/mp/event.ts +++ b/packages/uni-cli-shared/src/mp/event.ts @@ -1,3 +1,4 @@ +import { customizeEvent } from '@dcloudio/uni-shared' export function formatMiniProgramEvent( eventName: string, { @@ -10,6 +11,10 @@ export function formatMiniProgramEvent( isComponent?: boolean } ) { + if (isComponent) { + // 自定义组件的自定义事件需要格式化,因为 triggerEvent 时也会格式化 + eventName = customizeEvent(eventName) + } if (!isComponent && eventName === 'click') { eventName = 'tap' } diff --git a/packages/uni-mp-alipay/dist/uni.compiler.js b/packages/uni-mp-alipay/dist/uni.compiler.js index 4b0837517b171b5cafc691e1af9643714623484b..50a7c37e4b723448c6dbf0e4b5c10d35998bc186 100644 --- a/packages/uni-mp-alipay/dist/uni.compiler.js +++ b/packages/uni-mp-alipay/dist/uni.compiler.js @@ -44,13 +44,18 @@ function addVueRef(node, context) { props.splice(props.indexOf(refProp), 0, uniCliShared.createAttributeNode('ref', '__r')); } +const customizeRE = /:/g; +function customizeEvent(str) { + return shared.camelize(str.replace(customizeRE, '-')); +} + const event = { format(name, { isCatch, isComponent }) { if (!isComponent && name === 'click') { name = 'tap'; } name = eventMap[name] || name; - return `${isCatch ? 'catch' : 'on'}${shared.capitalize(shared.camelize(name))}`; + return `${isCatch ? 'catch' : 'on'}${shared.capitalize(customizeEvent(name))}`; }, }; const eventMap = { diff --git a/packages/uni-mp-alipay/dist/uni.mp.esm.js b/packages/uni-mp-alipay/dist/uni.mp.esm.js index 8c7e07b0ec5c837175433b0e7de3b0c59a51c8be..f84a385568d389ae31c2c27f57e408a1b659b502 100644 --- a/packages/uni-mp-alipay/dist/uni.mp.esm.js +++ b/packages/uni-mp-alipay/dist/uni.mp.esm.js @@ -1,4 +1,4 @@ -import { isPlainObject, hasOwn, isArray, capitalize, isFunction, extend, isString, camelize } from '@vue/shared'; +import { camelize, isPlainObject, hasOwn, isArray, capitalize, isFunction, extend, isString } from '@vue/shared'; import { injectHook, ref, findComponentPropsData, toRaw, updateProps, invalidateJob, getExposeProxy, EMPTY_OBJ, isRef, setTemplateRef, pruneComponentPropsCache } from 'vue'; // quickapp-webview 不能使用 default 作为插槽名称 @@ -25,6 +25,11 @@ const ON_PULL_DOWN_REFRESH = 'onPullDownRefresh'; const ON_ADD_TO_FAVORITES = 'onAddToFavorites'; const ON_SHARE_APP_MESSAGE = 'onShareAppMessage'; +const customizeRE = /:/g; +function customizeEvent(str) { + return camelize(str.replace(customizeRE, '-')); +} + const encode = encodeURIComponent; function stringifyQuery(obj, encodeStr = encode) { const res = obj @@ -663,10 +668,6 @@ function handleLink$1(event) { const isComponent2 = my.canIUse('component2'); const mocks = ['$id']; -const customizeRE = /:/g; -function customize(str) { - return camelize(str.replace(customizeRE, '-')); -} function initRelation(mpInstance, detail) { // onVueInit mpInstance.props.onVI(detail); @@ -771,7 +772,7 @@ function setRef(ref, refValue, refs, setupState) { } } function triggerEvent(type, detail) { - const handler = this.props[customize('on-' + type)]; + const handler = this.props[customizeEvent('on-' + type)]; if (!handler) { return; } @@ -779,7 +780,7 @@ function triggerEvent(type, detail) { dataset: {}, }; handler({ - type: customize(type), + type: customizeEvent(type), target, currentTarget: target, detail, diff --git a/packages/uni-mp-alipay/src/compiler/event.ts b/packages/uni-mp-alipay/src/compiler/event.ts index b206e77b8757f10c07a9580201e0b0cbd5ac4d32..610cbd1f98ce62c5dfba96fe6ad39799077f974d 100644 --- a/packages/uni-mp-alipay/src/compiler/event.ts +++ b/packages/uni-mp-alipay/src/compiler/event.ts @@ -1,4 +1,5 @@ -import { camelize, capitalize } from '@vue/shared' +import { capitalize } from '@vue/shared' +import { customizeEvent } from '@dcloudio/uni-shared' import { MiniProgramCompilerOptions } from '@dcloudio/uni-cli-shared' export const event: MiniProgramCompilerOptions['event'] = { @@ -7,7 +8,7 @@ export const event: MiniProgramCompilerOptions['event'] = { name = 'tap' } name = eventMap[name] || name - return `${isCatch ? 'catch' : 'on'}${capitalize(camelize(name))}` + return `${isCatch ? 'catch' : 'on'}${capitalize(customizeEvent(name))}` }, } diff --git a/packages/uni-mp-alipay/src/runtime/util.ts b/packages/uni-mp-alipay/src/runtime/util.ts index 042cdd3068fb464848e880e92d8ffd260f5237a3..1b6630dd4eab822683d9ec61138492126decd07e 100644 --- a/packages/uni-mp-alipay/src/runtime/util.ts +++ b/packages/uni-mp-alipay/src/runtime/util.ts @@ -1,4 +1,4 @@ -import { hasOwn, isFunction, camelize, isString } from '@vue/shared' +import { hasOwn, isFunction, isString } from '@vue/shared' import { ComponentPublicInstance, @@ -22,7 +22,7 @@ import { import { handleLink as handleBaseLink } from '@dcloudio/uni-mp-weixin' -import { ON_READY } from '@dcloudio/uni-shared' +import { customizeEvent, ON_READY } from '@dcloudio/uni-shared' type MPPageInstance = tinyapp.IPageInstance> export type MPComponentInstance = tinyapp.IComponentInstance< @@ -34,12 +34,6 @@ export const isComponent2 = my.canIUse('component2') export const mocks = ['$id'] -const customizeRE = /:/g - -function customize(str: string) { - return camelize(str.replace(customizeRE, '-')) -} - export function initRelation( mpInstance: MPComponentInstance, detail: RelationOptions @@ -189,7 +183,7 @@ export function triggerEvent( type: string, detail: object ) { - const handler = this.props[customize('on-' + type)] + const handler = this.props[customizeEvent('on-' + type)] if (!handler) { return } @@ -199,7 +193,7 @@ export function triggerEvent( } handler({ - type: customize(type), + type: customizeEvent(type), target, currentTarget: target, detail, diff --git a/packages/uni-mp-baidu/dist/uni.mp.esm.js b/packages/uni-mp-baidu/dist/uni.mp.esm.js index 3662851403888e1a94a7fd523592a10a0d6177d6..193f6d7ae90c2c955a8c1872640a355b2b8fc791 100644 --- a/packages/uni-mp-baidu/dist/uni.mp.esm.js +++ b/packages/uni-mp-baidu/dist/uni.mp.esm.js @@ -1,4 +1,4 @@ -import { isPlainObject, isArray, hasOwn, isFunction, extend, camelize } from '@vue/shared'; +import { camelize, isPlainObject, isArray, hasOwn, isFunction, extend } from '@vue/shared'; import { injectHook, ref, nextTick, findComponentPropsData, toRaw, updateProps, invalidateJob, getExposeProxy, pruneComponentPropsCache } from 'vue'; // lifecycle @@ -93,6 +93,11 @@ const ON_REACH_BOTTOM = 'onReachBottom'; const ON_PULL_DOWN_REFRESH = 'onPullDownRefresh'; const ON_ADD_TO_FAVORITES = 'onAddToFavorites'; +const customizeRE = /:/g; +function customizeEvent(str) { + return camelize(str.replace(customizeRE, '-')); +} + const encode = encodeURIComponent; function stringifyQuery(obj, encodeStr = encode) { const res = obj @@ -897,14 +902,10 @@ function initCreatePage(parseOptions) { const MPPage = Page; const MPComponent = Component; -const customizeRE = /:/g; -function customize(str) { - return camelize(str.replace(customizeRE, '-')); -} function initTriggerEvent(mpInstance) { const oldTriggerEvent = mpInstance.triggerEvent; mpInstance.triggerEvent = function (event, ...args) { - return oldTriggerEvent.apply(mpInstance, [customize(event), ...args]); + return oldTriggerEvent.apply(mpInstance, [customizeEvent(event), ...args]); }; } function initHook(name, options, isComponent) { diff --git a/packages/uni-mp-core/src/runtime/polyfill.ts b/packages/uni-mp-core/src/runtime/polyfill.ts index df4b6373426068b0be8d742c973b3f099df11ba4..ae4cbc0149fcd4e41a3a0409fd7dd368af564871 100644 --- a/packages/uni-mp-core/src/runtime/polyfill.ts +++ b/packages/uni-mp-core/src/runtime/polyfill.ts @@ -1,5 +1,4 @@ -import { camelize } from '@vue/shared' -import { ON_LOAD } from '@dcloudio/uni-shared' +import { customizeEvent, ON_LOAD } from '@dcloudio/uni-shared' import { MPComponentInstance } from './component' import { initPropsObserver } from './componentOptions' import { initProps } from './componentProps' @@ -7,16 +6,10 @@ import { initProps } from './componentProps' const MPPage = Page const MPComponent = Component -const customizeRE = /:/g - -function customize(str: string) { - return camelize(str.replace(customizeRE, '-')) -} - function initTriggerEvent(mpInstance: MPComponentInstance) { const oldTriggerEvent = mpInstance.triggerEvent mpInstance.triggerEvent = function (event, ...args) { - return oldTriggerEvent.apply(mpInstance, [customize(event), ...args]) + return oldTriggerEvent.apply(mpInstance, [customizeEvent(event), ...args]) } } diff --git a/packages/uni-mp-kuaishou/dist/uni.mp.esm.js b/packages/uni-mp-kuaishou/dist/uni.mp.esm.js index 5b7c9a0c6f2faa15710c0d07319dcbe76392a7de..c6f9c49b6cf8e18007e80725b51b246938030c73 100644 --- a/packages/uni-mp-kuaishou/dist/uni.mp.esm.js +++ b/packages/uni-mp-kuaishou/dist/uni.mp.esm.js @@ -1,4 +1,4 @@ -import { isPlainObject, isArray, hasOwn, isFunction, extend, camelize } from '@vue/shared'; +import { camelize, isPlainObject, isArray, hasOwn, isFunction, extend } from '@vue/shared'; import { injectHook, ref, nextTick, findComponentPropsData, toRaw, updateProps, invalidateJob, getExposeProxy, pruneComponentPropsCache } from 'vue'; const ON_READY$1 = 'onReady'; @@ -88,6 +88,11 @@ const ON_REACH_BOTTOM = 'onReachBottom'; const ON_PULL_DOWN_REFRESH = 'onPullDownRefresh'; const ON_ADD_TO_FAVORITES = 'onAddToFavorites'; +const customizeRE = /:/g; +function customizeEvent(str) { + return camelize(str.replace(customizeRE, '-')); +} + const encode = encodeURIComponent; function stringifyQuery(obj, encodeStr = encode) { const res = obj @@ -881,14 +886,10 @@ function initCreatePage(parseOptions) { const MPPage = Page; const MPComponent = Component; -const customizeRE = /:/g; -function customize(str) { - return camelize(str.replace(customizeRE, '-')); -} function initTriggerEvent(mpInstance) { const oldTriggerEvent = mpInstance.triggerEvent; mpInstance.triggerEvent = function (event, ...args) { - return oldTriggerEvent.apply(mpInstance, [customize(event), ...args]); + return oldTriggerEvent.apply(mpInstance, [customizeEvent(event), ...args]); }; } function initHook(name, options, isComponent) { diff --git a/packages/uni-mp-lark/dist/uni.mp.esm.js b/packages/uni-mp-lark/dist/uni.mp.esm.js index 97328d34c860278aa3a60066f09d2eb85e3bd0fd..3d218216ea9a1fbdfaca46fba578ed567dfbd519 100644 --- a/packages/uni-mp-lark/dist/uni.mp.esm.js +++ b/packages/uni-mp-lark/dist/uni.mp.esm.js @@ -1,4 +1,4 @@ -import { isPlainObject, isArray, hasOwn, isFunction, extend, camelize, isObject } from '@vue/shared'; +import { camelize, isPlainObject, isArray, hasOwn, isFunction, extend, isObject } from '@vue/shared'; import { injectHook, ref, nextTick, findComponentPropsData, toRaw, updateProps, invalidateJob, getExposeProxy, pruneComponentPropsCache } from 'vue'; const ON_READY$1 = 'onReady'; @@ -88,6 +88,11 @@ const ON_REACH_BOTTOM = 'onReachBottom'; const ON_PULL_DOWN_REFRESH = 'onPullDownRefresh'; const ON_ADD_TO_FAVORITES = 'onAddToFavorites'; +const customizeRE = /:/g; +function customizeEvent(str) { + return camelize(str.replace(customizeRE, '-')); +} + const encode = encodeURIComponent; function stringifyQuery(obj, encodeStr = encode) { const res = obj @@ -854,14 +859,10 @@ function initCreatePage(parseOptions) { const MPPage = Page; const MPComponent = Component; -const customizeRE = /:/g; -function customize(str) { - return camelize(str.replace(customizeRE, '-')); -} function initTriggerEvent(mpInstance) { const oldTriggerEvent = mpInstance.triggerEvent; mpInstance.triggerEvent = function (event, ...args) { - return oldTriggerEvent.apply(mpInstance, [customize(event), ...args]); + return oldTriggerEvent.apply(mpInstance, [customizeEvent(event), ...args]); }; } function initHook(name, options, isComponent) { diff --git a/packages/uni-mp-qq/dist/uni.mp.esm.js b/packages/uni-mp-qq/dist/uni.mp.esm.js index 075b4832e2e44224dfd015f2529d0b0154de4a2e..cfba67eab43f31bf811e582aa700e4f7a98d094c 100644 --- a/packages/uni-mp-qq/dist/uni.mp.esm.js +++ b/packages/uni-mp-qq/dist/uni.mp.esm.js @@ -1,4 +1,4 @@ -import { isPlainObject, isArray, hasOwn, isFunction, extend, camelize } from '@vue/shared'; +import { camelize, isPlainObject, isArray, hasOwn, isFunction, extend } from '@vue/shared'; import { injectHook, ref, findComponentPropsData, toRaw, updateProps, invalidateJob, getExposeProxy, pruneComponentPropsCache } from 'vue'; const ON_READY$1 = 'onReady'; @@ -88,6 +88,11 @@ const ON_REACH_BOTTOM = 'onReachBottom'; const ON_PULL_DOWN_REFRESH = 'onPullDownRefresh'; const ON_ADD_TO_FAVORITES = 'onAddToFavorites'; +const customizeRE = /:/g; +function customizeEvent(str) { + return camelize(str.replace(customizeRE, '-')); +} + const encode = encodeURIComponent; function stringifyQuery(obj, encodeStr = encode) { const res = obj @@ -849,14 +854,10 @@ function initCreatePluginApp(parseAppOptions) { const MPPage = Page; const MPComponent = Component; -const customizeRE = /:/g; -function customize(str) { - return camelize(str.replace(customizeRE, '-')); -} function initTriggerEvent(mpInstance) { const oldTriggerEvent = mpInstance.triggerEvent; mpInstance.triggerEvent = function (event, ...args) { - return oldTriggerEvent.apply(mpInstance, [customize(event), ...args]); + return oldTriggerEvent.apply(mpInstance, [customizeEvent(event), ...args]); }; } function initHook(name, options, isComponent) { diff --git a/packages/uni-mp-toutiao/dist/uni.mp.esm.js b/packages/uni-mp-toutiao/dist/uni.mp.esm.js index 47666428a147bdf8937462e06818a19a67ce079c..1fcb863ce899948e3b3f089047ae1483181a0030 100644 --- a/packages/uni-mp-toutiao/dist/uni.mp.esm.js +++ b/packages/uni-mp-toutiao/dist/uni.mp.esm.js @@ -1,4 +1,4 @@ -import { isPlainObject, isArray, hasOwn, isFunction, extend, camelize, isObject } from '@vue/shared'; +import { camelize, isPlainObject, isArray, hasOwn, isFunction, extend, isObject } from '@vue/shared'; import { injectHook, ref, nextTick, findComponentPropsData, toRaw, updateProps, invalidateJob, getExposeProxy, pruneComponentPropsCache } from 'vue'; const ON_READY$1 = 'onReady'; @@ -88,6 +88,11 @@ const ON_REACH_BOTTOM = 'onReachBottom'; const ON_PULL_DOWN_REFRESH = 'onPullDownRefresh'; const ON_ADD_TO_FAVORITES = 'onAddToFavorites'; +const customizeRE = /:/g; +function customizeEvent(str) { + return camelize(str.replace(customizeRE, '-')); +} + const encode = encodeURIComponent; function stringifyQuery(obj, encodeStr = encode) { const res = obj @@ -854,14 +859,10 @@ function initCreatePage(parseOptions) { const MPPage = Page; const MPComponent = Component; -const customizeRE = /:/g; -function customize(str) { - return camelize(str.replace(customizeRE, '-')); -} function initTriggerEvent(mpInstance) { const oldTriggerEvent = mpInstance.triggerEvent; mpInstance.triggerEvent = function (event, ...args) { - return oldTriggerEvent.apply(mpInstance, [customize(event), ...args]); + return oldTriggerEvent.apply(mpInstance, [customizeEvent(event), ...args]); }; } function initHook(name, options, isComponent) { diff --git a/packages/uni-mp-weixin/dist/uni.mp.esm.js b/packages/uni-mp-weixin/dist/uni.mp.esm.js index ffa5bb14faa173aff52540a7a7b9e4dbfc132231..8a9c64560551ea30f17d8bb773bb62ac9c02b33a 100644 --- a/packages/uni-mp-weixin/dist/uni.mp.esm.js +++ b/packages/uni-mp-weixin/dist/uni.mp.esm.js @@ -1,4 +1,4 @@ -import { isPlainObject, isArray, hasOwn, isFunction, extend, camelize } from '@vue/shared'; +import { camelize, isPlainObject, isArray, hasOwn, isFunction, extend } from '@vue/shared'; import { injectHook, ref, findComponentPropsData, toRaw, updateProps, invalidateJob, getExposeProxy, pruneComponentPropsCache } from 'vue'; // quickapp-webview 不能使用 default 作为插槽名称 @@ -23,6 +23,11 @@ const ON_REACH_BOTTOM = 'onReachBottom'; const ON_PULL_DOWN_REFRESH = 'onPullDownRefresh'; const ON_ADD_TO_FAVORITES = 'onAddToFavorites'; +const customizeRE = /:/g; +function customizeEvent(str) { + return camelize(str.replace(customizeRE, '-')); +} + const encode = encodeURIComponent; function stringifyQuery(obj, encodeStr = encode) { const res = obj @@ -723,14 +728,10 @@ const ON_READY = 'onReady'; const MPPage = Page; const MPComponent = Component; -const customizeRE = /:/g; -function customize(str) { - return camelize(str.replace(customizeRE, '-')); -} function initTriggerEvent(mpInstance) { const oldTriggerEvent = mpInstance.triggerEvent; mpInstance.triggerEvent = function (event, ...args) { - return oldTriggerEvent.apply(mpInstance, [customize(event), ...args]); + return oldTriggerEvent.apply(mpInstance, [customizeEvent(event), ...args]); }; } function initHook(name, options, isComponent) { diff --git a/packages/uni-quickapp-webview/dist/uni.mp.esm.js b/packages/uni-quickapp-webview/dist/uni.mp.esm.js index bedcce36615f69753893c17d5d3f5321af15866c..31cee3de16210a7be8e4ed86a6873ea1ea9bb7d9 100644 --- a/packages/uni-quickapp-webview/dist/uni.mp.esm.js +++ b/packages/uni-quickapp-webview/dist/uni.mp.esm.js @@ -1,4 +1,4 @@ -import { isPlainObject, isArray, hasOwn, isFunction, extend, camelize, isObject } from '@vue/shared'; +import { camelize, isPlainObject, isArray, hasOwn, isFunction, extend, isObject } from '@vue/shared'; import { injectHook, ref, nextTick, findComponentPropsData, toRaw, updateProps, invalidateJob, getExposeProxy, pruneComponentPropsCache } from 'vue'; const ON_READY$1 = 'onReady'; @@ -88,6 +88,11 @@ const ON_REACH_BOTTOM = 'onReachBottom'; const ON_PULL_DOWN_REFRESH = 'onPullDownRefresh'; const ON_ADD_TO_FAVORITES = 'onAddToFavorites'; +const customizeRE = /:/g; +function customizeEvent(str) { + return camelize(str.replace(customizeRE, '-')); +} + const encode = encodeURIComponent; function stringifyQuery(obj, encodeStr = encode) { const res = obj @@ -832,14 +837,10 @@ function initCreatePage(parseOptions) { const MPPage = Page; const MPComponent = Component; -const customizeRE = /:/g; -function customize(str) { - return camelize(str.replace(customizeRE, '-')); -} function initTriggerEvent(mpInstance) { const oldTriggerEvent = mpInstance.triggerEvent; mpInstance.triggerEvent = function (event, ...args) { - return oldTriggerEvent.apply(mpInstance, [customize(event), ...args]); + return oldTriggerEvent.apply(mpInstance, [customizeEvent(event), ...args]); }; } function initHook(name, options, isComponent) { diff --git a/packages/uni-shared/dist/uni-shared.cjs.js b/packages/uni-shared/dist/uni-shared.cjs.js index 9f1f7ad962cd35dd1facb8229e7a9c032dbf8104..cabdd2c7b65bbe6a9083b906ae54ea4eb78385ad 100644 --- a/packages/uni-shared/dist/uni-shared.cjs.js +++ b/packages/uni-shared/dist/uni-shared.cjs.js @@ -284,6 +284,10 @@ function resolveOwnerEl(instance) { } function dynamicSlotName(name) { return name === 'default' ? SLOT_DEFAULT_NAME : name; +} +const customizeRE = /:/g; +function customizeEvent(str) { + return shared.camelize(str.replace(customizeRE, '-')); } let lastLogTime = 0; @@ -1406,6 +1410,7 @@ exports.callOptions = callOptions; exports.createIsCustomElement = createIsCustomElement; exports.createRpx2Unit = createRpx2Unit; exports.createUniEvent = createUniEvent; +exports.customizeEvent = customizeEvent; exports.debounce = debounce; exports.decode = decode; exports.decodedQuery = decodedQuery; diff --git a/packages/uni-shared/dist/uni-shared.d.ts b/packages/uni-shared/dist/uni-shared.d.ts index 258289f45c8617febf803fa9521f46e3f2f4c4c3..ec1b5139421c31236cf2689354ae18e670835e35 100644 --- a/packages/uni-shared/dist/uni-shared.d.ts +++ b/packages/uni-shared/dist/uni-shared.d.ts @@ -122,6 +122,8 @@ export declare function createRpx2Unit(unit: string, unitRatio: number, unitPrec export declare function createUniEvent(evt: Record): UniEvent; +export declare function customizeEvent(str: string): string; + export declare const DATA_RE: RegExp; export declare function debounce(fn: Function, delay: number): { diff --git a/packages/uni-shared/dist/uni-shared.es.js b/packages/uni-shared/dist/uni-shared.es.js index 58cab82ec6edbed5f4c9f59413aef48b545d06b0..e3527d566dd18710ff3bc5520a02a6e04fa1ac6f 100644 --- a/packages/uni-shared/dist/uni-shared.es.js +++ b/packages/uni-shared/dist/uni-shared.es.js @@ -280,6 +280,10 @@ function resolveOwnerEl(instance) { } function dynamicSlotName(name) { return name === 'default' ? SLOT_DEFAULT_NAME : name; +} +const customizeRE = /:/g; +function customizeEvent(str) { + return camelize(str.replace(customizeRE, '-')); } let lastLogTime = 0; @@ -1295,4 +1299,4 @@ function getEnvLocale() { return (lang && lang.replace(/[.:].*/, '')) || 'en'; } -export { ACTION_TYPE_ADD_EVENT, ACTION_TYPE_ADD_WXS_EVENT, ACTION_TYPE_CREATE, ACTION_TYPE_EVENT, ACTION_TYPE_INSERT, ACTION_TYPE_PAGE_CREATE, ACTION_TYPE_PAGE_CREATED, ACTION_TYPE_PAGE_SCROLL, ACTION_TYPE_REMOVE, ACTION_TYPE_REMOVE_ATTRIBUTE, ACTION_TYPE_REMOVE_EVENT, ACTION_TYPE_SET_ATTRIBUTE, ACTION_TYPE_SET_TEXT, ATTR_CHANGE_PREFIX, ATTR_CLASS, ATTR_INNER_HTML, ATTR_STYLE, ATTR_TEXT_CONTENT, ATTR_V_OWNER_ID, ATTR_V_RENDERJS, ATTR_V_SHOW, BACKGROUND_COLOR, BUILT_IN_TAGS, BUILT_IN_TAG_NAMES, COMPONENT_NAME_PREFIX, COMPONENT_PREFIX, COMPONENT_SELECTOR_PREFIX, DATA_RE, EventChannel, EventModifierFlags, I18N_JSON_DELIMITERS, JSON_PROTOCOL, LINEFEED, MINI_PROGRAM_PAGE_RUNTIME_HOOKS, NAVBAR_HEIGHT, NODE_TYPE_COMMENT, NODE_TYPE_ELEMENT, NODE_TYPE_PAGE, NODE_TYPE_TEXT, NVUE_BUILT_IN_TAGS, NVUE_U_BUILT_IN_TAGS, NVueTextNode, ON_ADD_TO_FAVORITES, ON_APP_ENTER_BACKGROUND, ON_APP_ENTER_FOREGROUND, ON_BACK_PRESS, ON_ERROR, ON_HIDE, ON_KEYBOARD_HEIGHT_CHANGE, ON_LAUNCH, ON_LOAD, ON_NAVIGATION_BAR_BUTTON_TAP, ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED, ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED, ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED, ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED, ON_PAGE_NOT_FOUND, ON_PAGE_SCROLL, ON_PULL_DOWN_REFRESH, ON_REACH_BOTTOM, ON_REACH_BOTTOM_DISTANCE, ON_READY, ON_RESIZE, ON_SHARE_APP_MESSAGE, ON_SHARE_TIMELINE, ON_SHOW, ON_TAB_ITEM_TAP, ON_THEME_CHANGE, ON_UNHANDLE_REJECTION, ON_UNLOAD, ON_WEB_INVOKE_APP_SERVICE, ON_WXS_INVOKE_CALL_METHOD, PLUS_RE, PRIMARY_COLOR, RENDERJS_MODULES, RESPONSIVE_MIN_WIDTH, SCHEME_RE, SELECTED_COLOR, SLOT_DEFAULT_NAME, TABBAR_HEIGHT, TAGS, UNI_SSR, UNI_SSR_DATA, UNI_SSR_GLOBAL_DATA, UNI_SSR_STORE, UNI_SSR_TITLE, UNI_STORAGE_LOCALE, UniBaseNode, UniCommentNode, UniElement, UniEvent, UniInputElement, UniLifecycleHooks, UniNode, UniTextAreaElement, UniTextNode, WEB_INVOKE_APPSERVICE, WXS_MODULES, WXS_PROTOCOL, addFont, addLeadingSlash, cache, cacheStringFunction, callOptions, createIsCustomElement, createRpx2Unit, createUniEvent, debounce, decode, decodedQuery, defaultMiniProgramRpx2Unit, defaultRpx2Unit, dynamicSlotName, forcePatchProp, formatAppLog, formatDateTime, formatH5Log, formatLog, getCustomDataset, getEnvLocale, getLen, getValueByDataPath, initCustomDataset, invokeArrayFns, isAppNVueNativeTag, isAppNativeTag, isBuiltInComponent, isComponentInternalInstance, isComponentTag, isH5CustomElement, isH5NativeTag, isMiniProgramNativeTag, isRootHook, normalizeDataset, normalizeEventType, normalizeTarget, once, parseEventName, parseQuery, parseUrl, passive, plusReady, removeLeadingSlash, resolveComponentInstance, resolveOwnerEl, resolveOwnerVm, sanitise, scrollTo, stringifyQuery, updateElementStyle }; +export { ACTION_TYPE_ADD_EVENT, ACTION_TYPE_ADD_WXS_EVENT, ACTION_TYPE_CREATE, ACTION_TYPE_EVENT, ACTION_TYPE_INSERT, ACTION_TYPE_PAGE_CREATE, ACTION_TYPE_PAGE_CREATED, ACTION_TYPE_PAGE_SCROLL, ACTION_TYPE_REMOVE, ACTION_TYPE_REMOVE_ATTRIBUTE, ACTION_TYPE_REMOVE_EVENT, ACTION_TYPE_SET_ATTRIBUTE, ACTION_TYPE_SET_TEXT, ATTR_CHANGE_PREFIX, ATTR_CLASS, ATTR_INNER_HTML, ATTR_STYLE, ATTR_TEXT_CONTENT, ATTR_V_OWNER_ID, ATTR_V_RENDERJS, ATTR_V_SHOW, BACKGROUND_COLOR, BUILT_IN_TAGS, BUILT_IN_TAG_NAMES, COMPONENT_NAME_PREFIX, COMPONENT_PREFIX, COMPONENT_SELECTOR_PREFIX, DATA_RE, EventChannel, EventModifierFlags, I18N_JSON_DELIMITERS, JSON_PROTOCOL, LINEFEED, MINI_PROGRAM_PAGE_RUNTIME_HOOKS, NAVBAR_HEIGHT, NODE_TYPE_COMMENT, NODE_TYPE_ELEMENT, NODE_TYPE_PAGE, NODE_TYPE_TEXT, NVUE_BUILT_IN_TAGS, NVUE_U_BUILT_IN_TAGS, NVueTextNode, ON_ADD_TO_FAVORITES, ON_APP_ENTER_BACKGROUND, ON_APP_ENTER_FOREGROUND, ON_BACK_PRESS, ON_ERROR, ON_HIDE, ON_KEYBOARD_HEIGHT_CHANGE, ON_LAUNCH, ON_LOAD, ON_NAVIGATION_BAR_BUTTON_TAP, ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED, ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED, ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED, ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED, ON_PAGE_NOT_FOUND, ON_PAGE_SCROLL, ON_PULL_DOWN_REFRESH, ON_REACH_BOTTOM, ON_REACH_BOTTOM_DISTANCE, ON_READY, ON_RESIZE, ON_SHARE_APP_MESSAGE, ON_SHARE_TIMELINE, ON_SHOW, ON_TAB_ITEM_TAP, ON_THEME_CHANGE, ON_UNHANDLE_REJECTION, ON_UNLOAD, ON_WEB_INVOKE_APP_SERVICE, ON_WXS_INVOKE_CALL_METHOD, PLUS_RE, PRIMARY_COLOR, RENDERJS_MODULES, RESPONSIVE_MIN_WIDTH, SCHEME_RE, SELECTED_COLOR, SLOT_DEFAULT_NAME, TABBAR_HEIGHT, TAGS, UNI_SSR, UNI_SSR_DATA, UNI_SSR_GLOBAL_DATA, UNI_SSR_STORE, UNI_SSR_TITLE, UNI_STORAGE_LOCALE, UniBaseNode, UniCommentNode, UniElement, UniEvent, UniInputElement, UniLifecycleHooks, UniNode, UniTextAreaElement, UniTextNode, WEB_INVOKE_APPSERVICE, WXS_MODULES, WXS_PROTOCOL, addFont, addLeadingSlash, cache, cacheStringFunction, callOptions, createIsCustomElement, createRpx2Unit, createUniEvent, customizeEvent, debounce, decode, decodedQuery, defaultMiniProgramRpx2Unit, defaultRpx2Unit, dynamicSlotName, forcePatchProp, formatAppLog, formatDateTime, formatH5Log, formatLog, getCustomDataset, getEnvLocale, getLen, getValueByDataPath, initCustomDataset, invokeArrayFns, isAppNVueNativeTag, isAppNativeTag, isBuiltInComponent, isComponentInternalInstance, isComponentTag, isH5CustomElement, isH5NativeTag, isMiniProgramNativeTag, isRootHook, normalizeDataset, normalizeEventType, normalizeTarget, once, parseEventName, parseQuery, parseUrl, passive, plusReady, removeLeadingSlash, resolveComponentInstance, resolveOwnerEl, resolveOwnerVm, sanitise, scrollTo, stringifyQuery, updateElementStyle }; diff --git a/packages/uni-shared/src/vue.ts b/packages/uni-shared/src/vue.ts index a5491551efd75c576774b3488595567ef9fd6b32..4bc1b58c908a4aa6ebd65977f27d82ed8a1e3663 100644 --- a/packages/uni-shared/src/vue.ts +++ b/packages/uni-shared/src/vue.ts @@ -3,7 +3,7 @@ import type { ComponentPublicInstance, VNode, } from '@vue/runtime-core' -import { hyphenate } from '@vue/shared' +import { camelize, hyphenate } from '@vue/shared' import { isBuiltInComponent } from './tags' import { SLOT_DEFAULT_NAME } from './constants' @@ -62,3 +62,9 @@ export function resolveOwnerEl(instance: ComponentInternalInstance) { export function dynamicSlotName(name: string) { return name === 'default' ? SLOT_DEFAULT_NAME : name } + +const customizeRE = /:/g + +export function customizeEvent(str: string) { + return camelize(str.replace(customizeRE, '-')) +}