1
1
import { SLOT_DEFAULT_NAME , EventChannel , invokeArrayFns , MINI_PROGRAM_PAGE_RUNTIME_HOOKS , ON_LOAD , ON_SHOW , ON_HIDE , ON_UNLOAD , ON_RESIZE , ON_TAB_ITEM_TAP , ON_REACH_BOTTOM , ON_PULL_DOWN_REFRESH , ON_ADD_TO_FAVORITES , isUniLifecycleHook , ON_READY , ON_LAUNCH , ON_ERROR , ON_THEME_CHANGE , ON_PAGE_NOT_FOUND , ON_UNHANDLE_REJECTION , customizeEvent , addLeadingSlash , stringifyQuery } from '@dcloudio/uni-shared' ;
2
- import { isArray , isFunction , hasOwn , extend , hyphenate , isPlainObject , isObject } from '@vue/shared' ;
2
+ import { isArray , hasOwn , isFunction , extend , hyphenate , isPlainObject , isObject } from '@vue/shared' ;
3
3
import { ref , nextTick , findComponentPropsData , toRaw , updateProps , hasQueueJob , invalidateJob , devtoolsComponentAdded , getExposeProxy , pruneComponentPropsCache } from 'vue' ;
4
4
import { normalizeLocale , LOCALE_EN } from '@dcloudio/uni-i18n' ;
5
5
@@ -840,22 +840,6 @@ function initSpecialMethods(mpInstance) {
840
840
} ) ;
841
841
}
842
842
}
843
- function createVueComponent ( mpType , mpInstance , vueOptions , parent ) {
844
- return $createComponent ( {
845
- type : vueOptions ,
846
- props : findPropsData ( mpInstance . props , mpType === 'page' ) ,
847
- } , {
848
- mpType,
849
- mpInstance,
850
- slots : mpInstance . props . uS || { } , // vueSlots
851
- parentComponent : parent && parent . $ ,
852
- onBeforeSetup ( instance , options ) {
853
- initRefs ( instance , mpInstance ) ;
854
- initMocks ( instance , mpInstance , mocks$1 ) ;
855
- initComponentInstance ( instance , options ) ;
856
- } ,
857
- } ) ;
858
- }
859
843
860
844
function initCreatePage ( ) {
861
845
return function createPage ( vueOptions ) {
@@ -868,18 +852,30 @@ function initCreatePage() {
868
852
} ;
869
853
// 初始化 vue 实例
870
854
this . props = query ;
871
- this . $vm = createVueComponent ( 'page' , this , vueOptions ) ;
855
+ const mpInstance = this ;
856
+ this . $vm = $createComponent ( {
857
+ type : vueOptions ,
858
+ props : findPropsData ( this . props , true ) ,
859
+ } , {
860
+ mpType : 'page' ,
861
+ mpInstance : this ,
862
+ slots : this . props . uS || { } , // vueSlots
863
+ onBeforeSetup ( instance , options ) {
864
+ initRefs ( instance , mpInstance ) ;
865
+ initMocks ( instance , mpInstance , mocks$1 ) ;
866
+ initComponentInstance ( instance , options ) ;
867
+ } ,
868
+ } ) ;
872
869
initSpecialMethods ( this ) ;
873
- this . $vm . $callHook ( ON_LOAD , this . options ) ;
870
+ this . $vm . $callHook ( ON_LOAD , query ) ;
874
871
} ,
875
872
onShow ( ) {
876
- this . $vm . $callHook ( ON_SHOW ) ;
877
873
if ( __VUE_PROD_DEVTOOLS__ ) {
878
874
devtoolsComponentAdded ( this . $vm . $ ) ;
879
875
}
876
+ this . $vm . $callHook ( ON_SHOW ) ;
880
877
} ,
881
878
onReady ( ) {
882
- // 确保页面自定义组件都被收集到
883
879
setTimeout ( ( ) => {
884
880
this . $vm . $callHook ( 'mounted' ) ;
885
881
this . $vm . $callHook ( ON_READY ) ;
0 commit comments