{"id":5034,"date":"2016-05-20T17:21:00","date_gmt":"2016-05-20T09:21:00","guid":{"rendered":"https:\/\/sdeno.com\/?p=5034"},"modified":"2016-05-20T18:18:26","modified_gmt":"2016-05-20T10:18:26","slug":"%e4%bd%bf%e7%94%a8requirejs%e5%8a%a0%e8%bd%bdavalon-js%e4%bb%a5%e5%8f%8ammrouter%e8%b7%af%e7%94%b1","status":"publish","type":"post","link":"https:\/\/sdeno.com\/?p=5034","title":{"rendered":"\u4f7f\u7528requirejs\u52a0\u8f7davalon.js\u4ee5\u53cammRouter\u8def\u7531"},"content":{"rendered":"<p>requirejs \u00a0avalon.js\u00a0requirejs<\/p>\n<p>avalon\u81ea\u5e26\u52a0\u8f7d\u5668\u4e5f\u5c31\u662f\u8bf4\u53ef\u4ee5\u50cfrequirejs\u90a3\u6837\u52a0\u8f7dJS\uff0c\u4e8b\u5b9e\u4e0a\u5e76\u4e0d\u662f\u8fd9\u6837\uff0c\u5b83\u4e5f\u5c31\u53ea\u80fd\u52a0\u8f7d\u81ea\u5bb6\u7684\u63d2\u4ef6\u5982mmRouter.js\u6216\u8005mmState.js\u5982\u679c\u4f60\u60f3\u52a0\u8f7djquery\u4f1a\u62a5\u9519\uff0c\u8bf4\u660eavalon\u81ea\u5e26\u7684\u52a0\u8f7d\u5668\u662f\u7d2f\u8d58\u3002\u5c31\u8fde\u4f5c\u8005\u672c\u4eba\u53f8\u5f92\u6b63\u7f8e\u4e5f\u4e0d\u63a8\u8350\u4f7f\u7528\u4e86\u5728avalon2.0\u4e2d\u4e5f\u5df2\u7ecf\u5e9f\u9664\u4e86\u3002<\/p>\n<p>\u4f5c\u8005\u63a8\u8350\u4f7f\u7528\uff1awebpack<\/p>\n<p>\u8fd9\u4e48\u9ad8\u5927\u5c1a\u7684\u4e1c\u897f\u8fd8\u9700\u8981\u5b89\u88c5nodejs\u73af\u5883\u624d\u80fd\u4f7f\u7528\uff0c\u6211\u4eec\u4e5f\u53ef\u4ee5\u9009\u62e9requirejs\u6765\u4f7f\u7528\u3002<\/p>\n<pre>&lt;script src=\"require.min.js\"&gt;&lt;\/script&gt;\r\n&lt;script&gt;\r\n require.config({\r\n   paths: {\r\n      avalon: 'avalon.shim' \/\/\u6ce8\u610f\u8fd9\u91cc\u4e3aavalon\u81ea\u5b9a\u4e49\u540d\u79f0\u4e5f\u53ea\u80fd\u662f\u81ea\u5b9a\u4e49\u4e3a\"avalon\",\u56e0\u4e3aavalon\u5185\u90e8\u65e9\u5c31\u81ea\u5b9a\u597d\u4e86\uff0cjquery\u4e5f\u662f\u4e00\u6837\u7684\u4e5f\u53ea\u80fd\u662f\"jquery\"\r\n   },\r\n   shim: {\r\n     'avalon': {\r\n         exports: \"avalon\" \/\/\u5c06avalon\u5bf9\u8c61\u66b4\u9732\u51fa\u6765\r\n     }\r\n   }\r\n });\r\n\r\n require([\"domReady!\",\"jquery\",\"avalon\",\"mmRouter\"], function() {  \/\/domReady!\u662f\u7b49\u5f85DOM\u52a0\u8f7d\u5b8c\u6bd5\u540e\u5728\u8fd0\u884cJS   mmRouter\u662f\u8def\u7531\r\n   document.title=avalon.version; \/\/\u6807\u9898\u80fd\u8f93\u51fa \u8bc1\u660eavalon\u80fd\u4f7f\u7528\r\n   var model = avalon.define({\r\n     $id:'test',\r\n     currPath : \"\",\r\n     params : {},\r\n     query : {},\r\n     args : \"[]\"\r\n   })\r\n\r\n\/\/--------------\u4ee5\u4e0b\u4ee3\u7801\u80fd\u6267\u884c\u8bc1\u660emmRouter\u8def\u7531\u4e5f\u80fd\u6267\u884c\u6210\u529f\u4e86------------------------\r\n   function callback() {\r\n     model.currPath = this.path+$('#jq').text();  \/\/ \u80fd\u8f93\u51fa$('#jq').text()\u8bc1\u660e\u662fDOM\u52a0\u8f7d\u5b8c\u6210\u540e\u6267\u884cJS\u7684\uff0c\u4e5f\u8bc1\u660ejquery\u80fd\u6267\u884c\r\n     var params = this.params\r\n     if (\"time\" in params) {\r\n        params.time = avalon.filters.date(params.time, \"yyyy\u5e74M\u6708dd\u65e5\")\r\n     }\r\n     model.params = params\r\n     model.query = this.query\r\n     model.args = \"[\" + [].slice.call(arguments, 0) + \"]\"\r\n    }\r\n    avalon.router.get(\"\/aaa\/\", callback)\r\n    avalon.router.get(\"\/bbb\", callback)\r\n    avalon.router.get(\"\/ccc\/:ccc\", callback)\r\n    avalon.router.get(\"\/ddd\/{time:date}\/\", callback)\r\n    avalon.router.get(\"\/eee\/{count:\\\\d{4}}\/\", callback)\r\n    avalon.router.get(\"\/fff\", callback)\r\n    avalon.history.start({\r\n      basepath: \"\/avalon\"\r\n    })\r\n    avalon.scan();\r\n })\r\n &lt;\/script&gt;\r\n\r\n&lt;div id=\"jq\"&gt;\u6d4b\u8bd5jq&lt;\/div&gt;<\/pre>\n<p>&nbsp;<\/p>\n<p>domReady\u4e0b\u8f7d\uff1a<a href=\"https:\/\/sdeno.com\/wp-content\/uploads\/2016\/05\/domReady.txt\">domReady<\/a><\/p>\n<p>\u7528\u6cd51\uff1a<\/p>\n<pre>require([\"domReady!\"], function() {\r\n   \/\/\u52a0\u8f7dDOM\u7ed3\u675f\u540eJS\u4ee3\u7801\u6267\u884c\u8fd9\u91cc\r\n});<\/pre>\n<p>&nbsp;<\/p>\n<p>\u7528\u6cd52\uff1a<\/p>\n<pre>require([\"domReady\"], function(domReady) {\r\n    domReady(function(){\r\n         \/\/\u52a0\u8f7dDOM\u7ed3\u675f\u540eJS\u4ee3\u7801\u6267\u884c\u8fd9\u91cc\r\n    });\r\n});<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>requirejs \u00a0avalon.js\u00a0requirejs avalon\u81ea\u5e26\u52a0\u8f7d\u5668\u4e5f\u5c31\u662f\u8bf4\u53ef\u4ee5\u50cfrequir [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[37,11],"tags":[],"class_list":["post-5034","post","type-post","status-publish","format-standard","hentry","category-avalon-js","category-11"],"_links":{"self":[{"href":"https:\/\/sdeno.com\/index.php?rest_route=\/wp\/v2\/posts\/5034","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sdeno.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sdeno.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sdeno.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sdeno.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5034"}],"version-history":[{"count":0,"href":"https:\/\/sdeno.com\/index.php?rest_route=\/wp\/v2\/posts\/5034\/revisions"}],"wp:attachment":[{"href":"https:\/\/sdeno.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5034"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sdeno.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5034"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sdeno.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5034"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}