cxeditor整体流程
XApp willReceiveProps
第一次初始化项目 initDefaultProjectData
boundGlobalActions.changeProjectSettingForAll() base/redux-center/normal/actions/project/options.js
在里面 分别调用各自的
![](https://img.haomeiwen.com/i11574738/9059662a34bb401b.png)
changeProjectSetting D:\code\cxeditor\base\redux-center\withKey\actions\project\options.js
在内部完成option 收集,然后传给
computeNewData D:\code\cxeditor\resource\lib\computed\index.js
通过 computedSpecContextFromBFF 拿到接口数据
然后获取拿到生命周期函数
![](https://img.haomeiwen.com/i11574738/bfc7f1db8143243b.png)
依次执行
beforeGenerateProject
generateCover
generatePageArray
generateGirdle(简易册)
暴露出这些参数
![](https://img.haomeiwen.com/i11574738/eabbb8ce20045365.png)
拿到的参数进行 transform D:\code\cxeditor\resource\lib\project\transform.js
内部关键方法
transformSettings
transformCover
getDefaultResetCover
transformProjectCover(生命周期)
recalculateElementAttrsByPageArray(一个通用的方法,主要重新根据page的宽高计算出元素的比例宽高等等值)返回page数组
拿到当前containers
transformPageArray
getDefaultResetedPageArray
transformProjectPageArray(生命周期)
transformGridle
在内部通过editorName 获取各自 生命周期
非第一次 handleExistProjectData
handleExistProjectData
transformProject
![](https://img.haomeiwen.com/i11574738/d2a23e6e504cc9c6.png)
执行 cache[editorName] =await import(`@src/apps/${editorName}/utils/projectHandler`);
preHandleProject(生命周期)
computeNewData 重复流程