## 12.1.快速了解
使用示例:
```html
<div id="m"></div>
<a href="#/user">go user</a>
<a href="#/home">go home</a>
<script>
layui.use(['layRouter'],function(){
var layRouter = layui.layRouter;
layRouter.reg('/home', function(){
document.getElementById('m').innerHTML = 'Hello World';
}).reg('/user', function() {
document.getElementById('m').innerHTML = 'This is user page';
});
layRouter.init({
index: '/home' /* 首頁地址 */
});
});
</script>
```
 打開例子后,瀏覽器會從 http://xxx.com/ 跳轉到 http://xx.com/#/home ,并且在id為m的div中顯示 Hello World。
然后點擊`go user`的鏈接,會跳轉到 http://xx.com/#/user ,并且在id為m的div中顯示 his is user page。
## 12.2.注冊路由
```javascript
layRouter.reg('/home', function(){
alert('xxx');
});
// 在框架中要使用這種
index.regRouter([{
name: '用戶管理',
url: '#/system/user'
}]);
```
 上面是基礎的寫法,下面是index模塊封裝的寫法,使用index.regRouter注冊后訪問`#/system/user`,就會打開一個“用戶管理”的標簽頁,使用上面的寫法不會。
> layRouter是路由的核心實現,提供給index模塊作為支撐的,一般不需要去直接用它。
## 12.3.路由參數傳遞
請參考頁面[路由參數傳遞](https://demo.easyweb.vip/spa/#/template/routerDemo)。
**參數傳遞的規則:**
```text
#/system/user // 無參數
#/system/user/id=1 // 參數id=1
#/system/user/id=1/name=aaa // 參數id=1,name=aaa
```
 這三種類型的url注冊路由的時候只會注冊`#/system/user`這個url,后面兩個都是加了參數,而且后面的參數可以無限加,
也就是說如果已經注冊了`#/system/user`,`#/system/user`和`#/system/user/id=1/name=aaa`是可以直接訪問的。
**如何獲取當前傳遞的參數:**
```javascript
layui.router().search;
layui.router('#/system/user/id=1/name=aa').search;
```
```javascript
var param = layui.router().search
console.log(param.id);
console.log(param.name);
```
> 注意:不要傳遞太過復雜的參數,如`'/'`和`'='`會影響路由解析的符號不能傳遞。
## 12.4.路由不存在處理
在config.js中有一個`routerNotFound`方法用于處理404路由。
## 12.5.路由切換監聽
注冊`pop`方法即可監聽路由的切換:
```javascript
layRouter.reg('pop', function(r){
console.log(r);
});
```