这段js代码用来配置路由,达到一个路由功能,具体执行流程是什么意思呢?

mui.get_params = function(id){


 var p_arr = (location.hash!="") && location.hash.replace("#/","").split("/");
 var obj = {};
 
 //为配置对象中的参数名对应
 if(modules_obj[id].params && (p_arr.length>0)){
     
     for(var i = 0; i < p_arr.length; i ++){
         modules_obj[id].params[i] && (obj[modules_obj[id].params[i]] = p_arr[i]);
     }
     
 }

 return     obj;

}
公司用一个配置里写跳转来代替vue的路由,这段是控制配置的,配置的所有路由都定义在对象modules_obj里了,请问这段替代路由的代码具体是什么意思呢?

阅读 1.9k
1 个回答

楼主你要的是逐句解释?
mui.get_params = function(id){//定义get_params方法(带入id作为参数)

var p_arr = (location.hash!="") && location.hash.replace("#/","").split("/");//获取页面标签值,替换特殊字符为/,如:#admin->/admin
var obj = {};//创建一个配置对象

//为配置对象中的参数名对应
if(modules_obj[id].params && (p_arr.length>0)){//判断参数非空

 
 for(var i = 0; i < p_arr.length; i ++){
     modules_obj[id].params[i] && (obj[modules_obj[id].params[i]] = p_arr[i]);//遍历参数,并将其对应到配置对象中(压入模板内)
 }
 

}

return obj;//返回配置对象
}
你可以理解为把一个数组内的字符串按一定规则(替换)取出来再放入另一个数组内的操作,这样做的意义在于不论你页面标签值是什么,只要调用了这个方法,那么得到的标签值都是一组样式相同的字符串,并且能被路由识别

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题