Index: third_party/pkg/route_hierarchical/README.md |
diff --git a/third_party/pkg/route_hierarchical/README.md b/third_party/pkg/route_hierarchical/README.md |
deleted file mode 100644 |
index 2bada75bfe948793325f8d279e783ce025fcd319..0000000000000000000000000000000000000000 |
--- a/third_party/pkg/route_hierarchical/README.md |
+++ /dev/null |
@@ -1,147 +0,0 @@ |
-Route |
-===== |
- |
-Route is a client routing library for Dart that helps make building |
-single-page web apps. |
- |
-Installation |
------------- |
- |
-Add this package to your pubspec.yaml file: |
- |
- dependencies: |
- route_hierarchical: any |
- |
-Then, run `pub install` to download and link in the package. |
- |
-UrlMatcher |
----------- |
-Route is built around `UrlMatcher`, an interface that defines URL template |
-parsing, matching and reversing. |
- |
- |
-UrlTemplate |
------------ |
-The default implementation of the `UrlMatcher` is `UrlTemplate`. As an example, |
-consider a blog with a home page and an article page. The article URL has the |
-form /article/1234. It can matched by the following template: |
-`/article/:articleId`. |
- |
-Router |
--------------- |
- |
-Router is a stateful object that contains routes and can perform URL routing |
-on those routes. |
- |
-The `Router` can listen to `Window.onPopState` (or fallback to |
-Window.onHashChange in older browsers) events and invoke the correct |
-handler so that the back button seamlessly works. |
- |
-Example (client.dart): |
- |
-```dart |
-library client; |
- |
-import 'package:route_hierarchical/client.dart'; |
- |
-main() { |
- var router = new Router(); |
- router.root |
- ..addRoute(name: 'article', path: '/article/:articleId', enter: showArticle) |
- ..addRoute(name: 'home', defaultRoute: true, path: '/', enter: showHome); |
- router.listen(); |
-} |
- |
-void showHome(RouteEvent e) { |
- // nothing to parse from path, since there are no groups |
-} |
- |
-void showArticle(RouteEvent e) { |
- var articleId = e.parameters['articleId']; |
- // show article page with loading indicator |
- // load article from server, then render article |
-} |
-``` |
- |
-The client side router can let you define nested routes. |
- |
-```dart |
-var router = new Router(); |
-router.root |
- ..addRoute( |
- name: 'usersList', |
- path: '/users', |
- defaultRoute: true, |
- enter: showUsersList) |
- ..addRoute( |
- name: 'user', |
- path: '/user/:userId', |
- mount: (router) => |
- router |
- ..addDefaultRoute( |
- name: 'articleList', |
- path: '/acticles', |
- enter: showArticlesList) |
- ..addRoute( |
- name: 'article', |
- path: '/article/:articleId', |
- mount: (router) => |
- router |
- ..addDefaultRoute( |
- name: 'view', |
- path: '/view', |
- enter: viewArticle) |
- ..addRoute( |
- name: 'edit', |
- path: '/edit', |
- enter: editArticle))) |
-``` |
- |
-The mount parameter takes either a function that accepts an instance of a new |
-child router as the only parameter, or an instance of an object that implements |
-Routable interface. |
- |
-```dart |
-typedef void MountFn(Router router); |
-``` |
- |
-or |
- |
-```dart |
-abstract class Routable { |
- void configureRoute(Route router); |
-} |
-``` |
- |
-In either case, the child router is instantiated by the parent router an |
-injected into the mount point, at which point child router can be configured |
-with new routes. |
- |
-Routing with hierarchical router: when the parent router performs a prefix |
-match on the URL, it removes the matched part from the URL and invokes the |
-child router with the remaining tail. |
- |
-For instance, with the above example lets consider this URL: `/user/jsmith/article/1234`. |
-Route "user" will match `/user/jsmith` and invoke the child router with `/article/1234`. |
-Route "article" will match `/article/1234` and invoke the child router with ``. |
-Route "view" will be matched as the default route. |
-The resulting route path will be: `user -> article -> view`, or simply `user.article.view` |
- |
-Named Routes in Hierarchical Routers |
------------------------------------- |
- |
-```dart |
-router.go('usersList'); |
-router.go('user.articles', {'userId': 'jsmith'}); |
-router.go('user.article.view', { |
- 'userId': 'jsmith', |
- 'articleId', 1234} |
-); |
-router.go('user.article.edit', { |
- 'userId': 'jsmith', |
- 'articleId', 1234} |
-); |
-``` |
- |
-If "go" is invoked on child routers, the router can automatically reconstruct |
-and generate the new URL from the state in the parent routers. |