Le système de routage de Riot est basé sur [Anchor Point Change] de hashChange. Il existe deux façons de surveiller les changements de point d'ancrage :
riot.route et riot.route.exec
Les différences entre les deux sont les suivantes :
1. se charge lorsque la page Après cela, exécutez-la une fois, et une seule fois
2 Une fois la page de route chargée, elle ne sera pas exécutée automatiquement
La route ne s'exécutera que
après le changement du point d'ancrage. L'utilisation est la même, mais le timing d'exécution est différent. Prenons exec comme exemple.
Les valeurs par défaut sont les suivantes :
[code]// .../index.html#123/da宗熊 riot.route.exec(function(id, name){ // id = 123, name = da宗熊 console.log(id, name); });
Riot fournit également une méthode pour remplacer la valeur par défaut d'un itinéraire :
[code]// 定义路由新的取值方式: #!/user/home?id=123&name=xxx riot.route.parser(function(path){ // path 是 hash【除去#的那部分】 => !/user/home?id=123&name=xxx var raw = path.slice(1).split("?"); var uri = raw[0], qs = raw[1], params = {}; // 有搜索参数的话 if(qs){ qs.replace(/([^=&]*)=([^&])*/g, function(str, key, value){ params[key] = value; return str; }); }; // 给下面riot.route.exec()和riot.route()的 第1 和 第2 个参数 return [uri, params]; });
[code]// 假如链接如下: #!/user/home?id=123&name=xxx riot.route.exec(function(uri, qs){ // uri = /user/home // qs = {id: 123, name: "xxx"} });