Jumping in here from experience: it was pretty weird to get proper hash routing (with back-button support) working with OOUI. Not
impossible, but not incredibly obvious from the get-go since you still register routes via MFE, but also have to override teardowns of dialogs (the only component I'm familiar with, anyways). A quick example of some needed workarounds from the ZeroOverlay module in the ZeroBanner extension (sorry for no syntax highlighting):
45 ProcessDialog.prototype.getTeardownProcess = function ( data ) {
46 // Parent method
47 return ProcessDialog.super.prototype.getTeardownProcess.call( this, data )
48 .first( function () {
49 if ( window.location.hash.indexOf('#/zerosite') > -1 ||
50 window.location.hash.indexOf('#/zerofile') > -1 ) {
51 history.replaceState('', document.title, window.location.pathname + location.search);
52 }
53 }, this );
In addition, there were some minor CSS overrides needed and I think a few other issues I can't recall at the moment.