【问题标题】:How to set and pass a JSON prop through routes如何通过路由设置和传递 JSON 道具
【发布时间】:2021-11-12 14:50:10
【问题描述】:

在 vue.js 中 路由.js

[{path: "/path", name: "acomp_name", component: PathComp, props: { abc: {} }}]

comp.vue

<script>
...omitted_for_brevity,
methods: {
  changeRoute(json_sample){
     this.$router.push({name: "acomp_name", params: { abc: json_sample })
  }
}
</script>
  1. 有没有办法可以设置作为对象的道具返回另一个对象的 json 样本,像这样 那就是我可以在推送中设置路由器的props值吗
  2. 如果 vue-router4 确实不支持它。已经使用或正在使用什么方法来做到这一点?

【问题讨论】:

  • 不,先生,它没有,但在概述中似乎很接近,我的问题的目的是甚至能够将道具的值视为首先被访问的对象,并且相当老实说,它返回“[object object]”,但我需要能够设置和获取 abc 可以等于 json_sample 的位置,例如 {“a”:“stack”,“b”:“overflow”},
  • 再读一遍...... 不可能通过路由参数传递对象
  • 谢谢我现在看得很清楚,最后几个问题,你真的觉得 Pinia 真的比 vuex 好,因为我注意到 vuex 有点慢,特别是对于上下文提交更改,那么其他替代方案呢您建议与其他可以与 vue.js na 项目一起使用的第三方项目
  • Pinia 真的很好。它的作者 (posva) 是 Vue 核心成员,而 Pinia 是他的副项目,他在其中探索了“Vuex next”的外观。确实,current RFC of Vuex 5(Vuex 的下一个版本)深受 Pinia 的启发

标签: vue.js router


【解决方案1】:

感谢全能的上帝帮助我创造了一个直观可靠的答案, NB 解决方案适用于 vue3 和 vue-router4x

在 comp.vue 中 模板内的某处我有一个嵌套或子组件 所以

    <template>
      <p>...</p>
    ...omitted_for_brevity
    <router-view :prop_from_router.js="this.state.a_key_I_want_to_use"/>
    </template>

还在comp.vue中

<script>
...omitted_for_brevity
setup(){
  const s = reactive({})
  return {s}
},
methods: {
  changeRoute(t)
  this.state.a_key_i_want_to_use = t
}
}
</script>

【讨论】:

    猜你喜欢
    • 2021-09-13
    • 2017-08-10
    • 2021-06-27
    • 2020-11-12
    • 1970-01-01
    • 1970-01-01
    • 2017-07-12
    • 2020-04-03
    • 2018-10-18
    相关资源
    最近更新 更多