微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Mithril 组件如何在这里工作是我有过的一些奇怪的经历

如何解决Mithril 组件如何在这里工作是我有过的一些奇怪的经历

我正在阅读文档并在 script.js 中运行以下代码

    var Article = {
    view: function(vnode) {
        console.log(vnode)
        return "This is article " + vnode.attrs.articleid
    }
}
m.route(document.body,'/article/:articleid',{
    '/article/:articleid': Article
})
m.route.set('/article/:articleid',{articleid: 1})

但令我惊讶的是,我在控制台中两次获得了 vnode ds

Output

解决方法

那是因为路由器在定义时(调用 m.route(…) 时)立即执行,然后在调用 m.route.set(…) 时再次执行。 m.route(…) 的第二个参数是将立即解析的路由,对 m.route.set(…) 的调用不是初始化路由所必需的——在这种情况下,您保留了路由参数插值字符串,但它应该字面表达:

var Article = {
  view: function(vnode) {
    console.log(vnode)
      return "This is article " + vnode.attrs.articleid
  }
}

m.route(document.body,'/article/1',{
    '/article/:articleid': Article
  })

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。