javascript - 如何将属性传递给 Vue Js 中由路由器调用的组件

标签 javascript vue.js vuejs2 vue-component vue-router

我是 VueJs 新手,我对两个组件有疑问。我正在尝试使用 vuejs 路由器显示一个组件,并且我必须将属性传递给该组件,并且由于它不是该组件的子组件(位于不同的目录中),我如何将数据传递给该组件? 例如:

这是一个父组件:

 <template>
    <div class="container">
       <router-link to="/Form"></router-link>
    </div>
</template> 
<script>
  export default{
  data(){
    return{
      values: {val1: 123, val2: 321}
    }
  }
}
</script>

这是一个需要属性的组件,Form组件:

 <template>
    <div class="container">
       <form>
         <input type="text" v-model="values.val1"/>
         <input type="number" v-model="values.val2"/>
       </form>
    </div>
</template> 
<script>
  export default{
  props: {
    values: {
      type: Object
    }
  }
}
</script>

最佳答案

您可以将值作为查询对象传递:

<router-link :to="{ path: '/Form', query: values }"></router-link>

并让 Form 组件检查 $route.query 值,而不是使用 props:

<template>
  <div class="container">
    <form>
      <input type="text" v-model="values.val1"/>
      <input type="number" v-model="values.val2"/>
    </form>
  </div>
</template> 
<script>
export default {
  data() {
    return {
      values: this.$route.query
    }
  }        
}
</script>

请注意,这些值将作为查询字符串添加到 URL。

<小时/>

否则,我会看看 this post 。或者也许看看 Vuex .

关于javascript - 如何将属性传递给 Vue Js 中由路由器调用的组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46163494/

相关文章:

javascript - 在d3.js中,使用svg.node()的目的是什么?

javascript - 如何保护我的单页应用程序免受 CSRF 侵害

django - 使用 Nginx 为 Django 和 Vue 服务

vue.js - 服务器端渲染 Vue 与 ASP.NET Core 2

javascript - 使用 v-html 和 <transition> 时无法读取 null 的属性 '_pending'

javascript - 如何在 Div Wrapper 中实现圆形动画

javascript - 点击功能不适用于下拉菜单(JavaScript)

javascript - 页面使用 router.use 呈现,但给出“无法获取”。 router.get 错误

Vue.js 条件 : If contains

vue.js - 当异步调用更新另一个属性时,Vue 组件会丢失输入