zoukankan      html  css  js  c++  java
  • vue-router单页应用简单示例(三)

    用vue-resource向服务器请求数据

    我们主要来了解一下以下内容:

    • 模拟服务端返回数据
    • 用vue-resource向服务器请求数据

    模拟服务器返回数据

     
    我们用vue-cli创建的项目中,已经给我们提供了模拟服务器端返回数据的地方和接口。如下图所示,在项目目录的build目录下,有一个dev-server.js,在这个文件中,我们就可以来做一些模拟数据的工作。

    1、准备一个data.json文件

    在项目根目录下,新建一个data.json。这个文件里的内容就是我们要模拟的服务端返回的数据。
    data.json的内容如下:
    {
        "books": [
            { "price": "111.00", "title": "语文", "img": "http://imgsrc.baidu.com/forum/w%3D580/sign=688d19b6422309f7e76fad1a420f0c39/0e143912b31bb051dfdebf0a327adab44bede0f9.jpg" },
            { "price": "123.00", "title": "数学", "img": "http://shopimg.kongfz.com.cn/20130826/1746508/1746508YTGtm0_b.jpg"},
            { "price": "113.00", "title": "英语", "img": "http://www.shiyi910.com/UploadFiles/2014-01/170/2014011322414554305.jpg"},
            { "price": "112.00", "title": "物理", "img": "http://f.hiphotos.baidu.com/zhidao/wh%3D450%2C600/sign=b62ac53d4b36acaf59b59ef849e9a126/f603918fa0ec08fa2cf895a359ee3d6d55fbda3e.jpg"}
        ]
    }

    这里,books字段里的每一个对象表示一本书的信息。

    2、“写接口”

     
    修改dev-server.js文件,在大概第20行左右的 var app = express()之后,添加上如下内容
    var appData = require('../data.json')
    var books = appData.books
    
    var apiRoutes = express.Router()
    apiRoutes.get('/books', function(req, res){
      res.json({
        data: books
      })
    })
    
    app.use('/api', apiRoutes)

    简单说明一下,这段代码就是通过请求醒目根目录下的data.json文件,拿到文件的内容并赋值给appData变量,取到里面的books字段内容保存在books变量中。然后,通过express提供的Router对象,以及Router对象的一些方法(这里是get方法)来设置请求的路径,以及请求成功后的回调函数来处理要返回给请求端的数据。最后,我们要“使用”这个Router对象,为了统一管理api接口,我们在要请求的路由前边都加上‘api/’来表明这个路径是专门用来提供api数据的。在这个“接口”中,当我们访问“http://localhost:8080/api/books”路径的时候,就会返回data.json里的books对象给我们。
     
    这里我们先来简单验证一下是否能成功返回数据,打开命令行,cd到当前项目目录,运行 npm run dev ,等项目运行成功之后,在浏览器地址栏输入http://localhost:8080/api/books,看到如下图所示,数据正常返回,OK!“接口”就开发完成了。

    1、安装vue-resource

    打开命令行,cd到项目目录,运行 npm install vue-resource --save或者 cnpm install vue-resource --save,等待安装完成即可。
     

    2、修改相关文件

    1.在router/index.js里导入并使用vue-resource

    在index.js中添加如下代码
     
     2.在App.vue中添加如下代码
     

    然后,再回到浏览器,应该会看到如下图的效果了。

     

    当我们点击语文,会看到页面有如下变化

    url中detail后面的id参数被取到然后显示在页面中。

    至此我们的简单单页示例已经完成。

    附上github完整代码https://github.com/herozhou/vue-spa-example

  • 相关阅读:
    基于摸板匹配的目標跟蹤算法
    spoj 2713 Can you answer these queries IV
    zoj 3633 Alice's present
    hdu 3642 Get The Treasury
    poj 1195 Mobile phones
    poj 2760 End of Windless Days
    zoj 3540 Adding New Machine
    spoj 1716 Can you answer these queries III
    spoj 1043 Can you answer these queries I
    spoj 2916 Can you answer these queries V
  • 原文地址:https://www.cnblogs.com/herozhou/p/7026170.html
Copyright © 2011-2022 走看看