这段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里了,请问这段替代路由的代码具体是什么意思呢?


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



相关阅读:
大文本处理时vim和sublime的性能
python3编码问题
nodeJs 的 事件驱动 到底好在哪?
eclipse中logcat不输出日志
redux,如何多个页面共用一个state?
关于redux中几个参数的来历
一个js监听事件的小问题
webstorm中和subline中同样的文件在chrome控制台下调试时,不一样,是什么原因
angular-ui-router的预加载与控制器注入
laravel在中间件内生成的变量如何传到控制器
vue 路由跳转后 怎样去掉指定的组件?
求一个博客用的tags轮子,怎么都是laravel的。
[webstorm]webstorm如何打开.babelrc文件?
关于ajax请求
模拟草料上传二维码图片,得出识别结果
关于 浏览器 Cache-Control 不能设置问题。
transform属性在这种情况下为什么不生效啊?
怎样通过$.ajax跨域请求斗鱼TV API 取得json数据
cef3 cookie分离
标签添加成功了为什么不显示呢?



快速导航

Copyright © 2016 phpStudy |