代码之家  ›  专栏  ›  技术社区  ›  bluePearl

Vue路由更改,但页面信息显示以前的路由详细信息

  •  0
  • bluePearl  · 技术社区  · 7 年前

    我有一个标题,有多个指向不同页面的链接,当我单击一个链接时,正文中的内容会按预期更改,但当我单击一个diff标题链接时。我看到路由url已正确更改,但正文内容显示前一个链接。一旦我点击刷新我看到适当的身体内容,我期待。我不确定问题是与HTML绑定有关,还是与如何加载显示正文内容的Vue组件有关。

    所以我的想法是我有标题链接,显示在所有网页:班级,老师,学生。当我点击“教师”时,我会得到要出现在正文中的教师列表。当我点击学生时,我看到了学生的url改变,但我仍然看到了教师的内容。一旦我点击刷新我看到学生的内容。

    页眉:

    ul
     li(v-for='link in links')
      router-link(:to='{name: "LinkPage", params...}'){{link.name}}
    

    在我的视图页中,我有:

    h1 {{link.name}}
    

    在我的剧本里:

      beforeMount(){
      //api to make call to get the details for the selected link and set it to link property which i used to load html. 
    }
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   nether_cat    7 年前

    我觉得你的实现有点缺乏细节。

    从你展示和解释的内容来看,我猜你有 beforeMount 钩子,正在路线变更中重新使用。正在重复使用的组件不会重新安装。你需要使用路由器的导航卫士甚至 in-component navigation guards 以触发数据更新。你可以找到路由器导航流程的细节 here .

    如果我的怀疑是正确的,我建议您考虑使用专用路由组件(每个路由一个)。你可以叫他们。 PageHome , PageFoo , PageBar . 另外还有一个选择 nested routes .

    这些模式使应用程序的结构和导航行为更加清晰。

    推荐文章