1.路由
微前端的基础之一就是解决路由,而我所面临的巨石应用是由angular1+ui.router构成的应用。
ui.router是直接引用html文件的,以此为起点,我开始探索以原项目为portal,植入子项目的做法。
在原项目中创建vue文件夹,init项目
开发时,使用代理,使子项目成为与portal相同端口的应用,解除跨域
devServer: {
// web 服务
noInfo: false,
overlay: false,
host: "127.0.0.1", port: 1024,
clientLogLevel: "none",
contentBase: './dist/wkframe', quiet: true/*静默*/, /*inline: true,*/
headers: {
'access-control-allow-origin': '*'
}, proxy: {
'/vue': {
target: 'http://127.0.0.1:8080/',
secure: false
}
}
}
编译时,将vue的dist包添加至portal项目的dist包,更改路由
//webpack.dev.js
new copyWebpackPlugin([
{from: "static", to: "static"},
{from: "wkframe", to: "wkframe"},
{from: "vue/dist", to: "vue"}
])
//route.js
$stateProvider.state("vue", {
url: "/vue",
cache:false,
views: {
"content": {
templateUrl: "/vue/index.html"
}
}
})
2.数据通信
可以看到,基于此种设定的父子应用处于同一个域,而angular1并没有程序内部的状态管理,多使用浏览器缓存
因为
父子应用同域,可以使用浏览器缓存获取相互状态
路由互通,可以使用url+参数传递参数
而需要状态隔离则在子应用使用vuex进行内部状态管理(暂时没有用到)
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!