前端路由示例

如下示例演示了参数路由与反应性数据流的结合。这是一个完全可以工作的 NX app。只要把如下代码拷贝进一个空的 HTML 文件中, 然后在现代浏览器中打开它来试用。

  1. <script src="https://www.nx-framework.com/downloads/nx-beta.2.0.0.js"></script>
  2. <script>
  3. nx.components.app({
  4. params: {
  5. title: { history: true, url: true, default: 'Gladiator' }
  6. }
  7. }).use(setup).register('movie-plotter')
  8. function setup (comp, state) {
  9. comp.$observe(() => {
  10. fetch('http://www.omdbapi.com/?r=json&t=' + state.title)
  11. .then(response => response.json())
  12. .then(data => state.plot = data.Plot || 'No plot found')
  13. })
  14. }
  15. </script>
  16. <movie-plotter>
  17. <h2>Movie plotter</h2>
  18. <p>Title: <input type="text" name="title" bind /></p>
  19. <p>Plot: @{plot}</p>
  20. </movie-plotter>

状态中的 title 属性会自动与 URL 和 浏览器历史保持同步。传入函数中的 comp.$observe 会被监听,当标题改变的时候,它会自动抓取对应的电影情节。这会创建一个强大的完美地和浏览器结合的反应式数据流。

前端路由示例 - 图1

这个 app 没有展示路径路由。想看更多的完整示例请查看 intro appNX Hacker News clone 或者 path routingparameter routing 文档页面。都有可编辑示例。