使用 Vue 路由器返回 JSON

Posted

技术标签:

【中文标题】使用 Vue 路由器返回 JSON【英文标题】:Returning JSON with Vue Router 【发布时间】:2018-03-23 18:27:14 【问题描述】:

当用户在我的应用程序上点击 /nav 时,我需要返回一个 JSON 对象。此 JSON 以编程方式使用,不能只是一个字符串。

有没有办法制作一个只有 JSON 的 vue 组件?或者告诉路由器返回 JSON 的方法?

谢谢!

【问题讨论】:

创建一个 json 文件 myinput.json 并将其作为输入添加到您的程序中。 @divine 如何“将其作为输入添加到您的程序中”? @geoidesic 检查我的答案 【参考方案1】:

我有一个非常相似的问题。 我希望 /nav 返回 JSON,但只在我的本地开发服务器上。

所以我刚刚创建了一个vue.config.js 文件(在我的应用根文件夹中)

module.exports = 
  devServer: 
    before: function(app, server) 
      app.get('/nav', function(req, res) 
        const result =  x:1 , y : "hello" ;
        res.writeHead(200, 'Content-Type': 'application/json');
        res.end(JSON.stringify(result));
      );
    
  

当我运行npm run serve 时使用这些文件,我在导航到/nav 时会得到json 对象,否则会得到我的常规应用程序。

【讨论】:

【参考方案2】:

有没有办法制作一个只有 JSON 的 vue 组件?

不要创建一个只有 JSON 的 vue 组件,而是创建一个 JSON 对象并导出它

jsonInput.js

export const jsonInput = [
   id: "1", title: "Mars" ,
   id: "2", title: "Venus" ,
   id: "3", title: "Pluto" 
];

将 JSON 对象导入到您的组件中

Planets.vue

<script>
    import jsonInput  from './jsonInput';
    export default 
      data()
          return 
              planets : jsonInput 
          
       
    
</script>

【讨论】:

分享被否决的原因比仅仅投反对票更好 可能他们被否决了,因为您还没有定义模板并且使用此代码肯定会收到此错误:Error: render function or template not defined in component: anonymous 我可以在 Vue 路由中提供这个 JSON 对象吗?

以上是关于使用 Vue 路由器返回 JSON的主要内容,如果未能解决你的问题,请参考以下文章

Vue.js 路由和 JQuery - 从路由返回

(Vue-cli)三、路由传参(params参数&query参数&router和route&vue.config.js)

vue 项目路由权限管理实现

如何将 JSON 响应映射到 Vue 路由?

前端路由简介以及vue-router实现原理

前端路由简介以及vue-router实现原理