javascript - vue 路由器参数关于数据更改

标签 javascript vue.js vuejs2 vue-router

我有一个拆分界面,您可以在下面的示例图片中看到它。在左侧你可以看到 app.vue 的内容。右侧是路由器 View 内容。通过 app.vue 内容顶部的菜单栏,您可以在不同的路由器链接之间切换,从而更改左侧的路由器 View 。到目前为止一切顺利。

example1

但现在的问题是:在我的 app.vue 中,用户输入存储在数据变量中。用户输入是 app.vue 内容的一部分,但在路由器 View 中也需要。

enter image description here

我当前的版本将带有路由器链接参数的用户输入发送到路由器 View 。问题是在页面加载和用户输入更改时,路由器 View 上的数据已被弃用。要再次显示正确的数据,我必须触发路由器链接。

App.vue:

<template>
  <div>

    <router-link :to="{ name: 'route01', params: { data: userinput } }">
      01 route
    </router-link>

    <router-link :to="{ name: 'route02', params: { data: userinput } }">
      02 route
    </router-link>

  </div>
</template>


<script>
export default {
  data: function() {
    return {
      userinput: 'foo',
    }
  }
}
</script>

route01.vue:

<template>
<div class="container">
  <h1>{{userinput}}</h1>
</div>
</template>

<script>
export default {
  data: function() {
    return {
      userinput: 'no input',
    };
  },
  created: function() {
    this.userinput = this.$route.params.userinput;
  }
}
</script>

如何在每次用户输入更改时重新加载路由器 View ?以及如何将页面加载时的默认用户输入值发送到默认路由器链接?

最佳答案

如果您将 userinput 设为一个对象,它将通过引用传递。这样,对该对象所做的任何更新都会反射(reflect)在任何持有对同一对象的引用的组件中..

App.vue

<template>
  <div>

    <router-link :to="{ name: 'route01', params: { userinput } }">
      01 route
    </router-link>

    <router-link :to="{ name: 'route02', params: { userinput } }">
      02 route
    </router-link>

  </div>
</template>


<script>
export default {
  data: function() {
    return {
      userinput: { text: 'foo' },
    }
  }
}
</script>

route01.vue

<template>
<div class="container">
  <h1>{{ userinput.text }}</h1>
</div>
</template>

<script>
export default {
  data: function() {
    return {
      userinput: { text: 'no input' },
    };
  },
  created: function() {
    this.userinput = this.$route.params.userinput;
  }
}
</script>

关于javascript - vue 路由器参数关于数据更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53044281/

相关文章:

javascript - 从 IndexedDB 中检索键的部分字符串匹配的记录

javascript - 单击 easeljs 中形状的处理程序

javascript - 从提交时点击 'next'按钮现在如何防止这种情况?

javascript - 从 Vue 动画 Canvas

javascript - 带有 CellEditing 的 ExtJs 4 GridPanel : data entered is lost on failed validation

javascript - 遍历对象数组并在 html 标签-Javascript 中显示 Prop 的值

javascript - 无法使用 this.$refs 在 Vue.js 中访问单个元素

javascript - 避免子组件中的未定义值

javascript - 使用 Vue 和 vue-tables-2 设置 JsFiddle - t 未定义

vue.js - 对于使用 Vue cli3 库的 Vuejs cli3 SPA 应用程序,SSR 构建表示 "document is not defined"