單頁(yè)路由里面有一個(gè)
router.history
而多頁(yè)沒(méi)有, 為了方便管理組件, 1.6.0以后都使用bui.history
來(lái)獲取歷史記錄. 多頁(yè)的歷史記錄只會(huì)有一個(gè).
bui.history.get
// 獲取所有, 返回?cái)?shù)組
var allHistory = bui.history.get();
// 通過(guò)模塊名獲取某個(gè)歷史記錄, 返回對(duì)象
var main = bui.history.get("main");
bui.history.getLast
// 獲取所有, 返回對(duì)象
var lastHistory = bui.history.getLast();
// 獲取最后的頁(yè)面的實(shí)例, exports 是需要模塊拋出才會(huì)有.
var currentDistance = bui.history.getLast("exports");
如果還沒(méi)有這個(gè),需要更新 bui.js
bui.history.getPrev
// 獲取上一個(gè)頁(yè)面
var prevHistory = bui.history.getPrev();
// 獲取上一個(gè)頁(yè)面的實(shí)例, exports 是需要模塊拋出才會(huì)有.
var prevDistance = bui.history.getPrev("exports");
bui.history.getComponent
// 可以拿到list實(shí)例拋出的方法
var listDistance = bui.history.getComponent("list");;
<component id="list" name="pages/components/list/index"></component>
pages/components/list/index.js
loader.define(function(){
var uiList = bui.list({
id:"",
url:""
})
return uiList;
})
bui.history.getParams
// 方法1: 如果不確定該模塊會(huì)被哪種方式使用, 則可以使用這種方式獲取. module.id 在loader.define(function(req,ext,module){ }) 的第三個(gè)參數(shù)
var params = bui.history.getParams(module.id);
// 方法2: 獲取單頁(yè)路由或者多頁(yè)路由的跳轉(zhuǎn)傳參 bui.load({url:"",param:{}})
var params = bui.history.getParams("url");
// 方法3: 獲取以bui.page({url:"",param:{}}) 加載的的參數(shù), 通過(guò)以下方式獲取
var pageParams = bui.history.getParams("page");
// 方法4: 獲取以router.loadPart, loader.load , component標(biāo)簽 加載的的參數(shù), 通過(guò)以下方式獲取
var partParams = bui.history.getParams("component");
bui.history.getPage
通過(guò) bui.page 加載的模塊,使用這個(gè)方式獲取 例如:
bui.page({
url:"pages/login/login.html"
})
// 可以拿到login實(shí)例拋出的方法
var login = bui.history.getPage("pages/login/login");;
pages/login/login.js
loader.define(function(require,export,module){
var form = {
init: function(){
console.log("login init")
}
}
// 執(zhí)行
form.init();
return form;
})
pages/login/login.js
loader.define(function(require,export,module){
var form = {
init: function(){
// 內(nèi)部可以拿到 module.id 來(lái)獲取彈窗, 進(jìn)行彈窗的操作.
var dialog = bui.history.getPageDialog(module.id);
// 關(guān)閉操作
// dialog.close();
console.log(dialog)
}
}
// 執(zhí)行
form.init();
return form;
})
bui.history.check
var isLogin = bui.history.check("pages/login/login.html");
bui.history.checkComponent
<component id="tab1" name="pages/components/list/index"></component>
// tab1 為 component 標(biāo)簽的id
var isLoaded = bui.history.check("tab1");
bui.history.checkPage
// tab1 為 id
var isLoaded = bui.history.checkPage("tab1");
bui.refresh
或bui.history.refresh
都可以.
bui.history.refresh
bui.history.refresh();
bui.refresh();
更多建議: