vue-自带vue-resource插件实现http请求

安装


本地环境安装路由插件vue-resource:    cnpm install vue-resource --save-dev 

 *没有安装淘宝镜像的可以将 cnpm 替换成 npm

想要安装的可以看这篇文章http://www.cnblogs.com/padding1015/p/7162024.html,(打开搜索  镜像  即可跳转到对应位置)


配置


1.引用

main.js中用import引入进来:

import VueResource from 'vue-resource'

* 注意这里VueResource是自定义的名字。下边注册的时候会用到

2.注册

同样,main.js中注册,同vue-router

Vue.use(VueResource)

4. 使用

直接在对应页面的created钩子函数配置即可:

created() {

    this.$http.get("http://jsonplaceholder.typicode.com/todos")

    .then((data) => {

        // console.log(data)

        this.arrs = data.body;

})

链接是数据接口的地址,arrs是在本页面的data函数中定义的空对象,data.body是拿到的数据存放的地方。

4. 使用数据

根据拿到的数据结构和内容对应渲染

页面中直接渲染使用:

<li v-for="item in arrs" v-on:click="item.completed = ! item.completed">    <!-- {{item}} -->    <span class="id">{{item.userId}} </span>     <span class="title">{{item.title}}</span>    <span class="completed" v-show="item.completed">选中</span></li> 


<template>

    <div class="app-cont">

            <div class="vue-resource">

            <h3>获取其他地址里的json数据并进遍历</h3>

            <ul>

                <li v-for="item in arrs" v-on:click="item.completed = ! item.completed">

                    <!-- {{item}} -->

                    <span class="id">{{item.userId}} </span>

                    <span class="title">{{item.title}}</span>

                    <span class="completed" v-show="item.completed">选中</span>

                </li>

            </ul>

        </div>

    </div>

</template>

<script>

    export default{

        name: "app-cont",

        data () {

            return {

                arrs:{}

            }

        },

        methods: {

        },

        // 页面加载之前,用created钩子函数-获取网页数据

        created() {

            this.$http.get("http://jsonplaceholder.typicode.com/todos")

            .then((data) => {

                // console.log(data)

                this.arrs = data.body;

            })

        }

    }

</script>

<style scoped>

    h2{

        margin: 0;

        padding: 10px 0;

        background: #f5f5f5;

    }

    ul{

        display: flex;

        flex-wrap: wrap;

        margin: 0 auto;

        padding: 10px 0;

    }

    li{

        position: relative;

        flex-grow: 1;

        flex-basis: 200px;

        text-align: center;

        padding: 30px;

        margin: 5px;

        border: 2px solid Lightgreen;

    }

    li:hover{

        background: Lightgreen;

        cursor: pointer;

    }

    span{

        color: #333;

        font-weight: bold;

    }

    .vue-resource{

        margin: 20px 40px;

        border: 1px solid Lightgreen;

        background: #eee;

    }

    span{

        display: block;

    }

    span.id{

        width: 75%;

        margin: 0 auto 20px;

        padding: 10px 0;

        border-bottom: 1px solid Lightgreen;

    }


    span.completed{

        position: absolute;

    top: -6px;

    right: 10px;

        z-index: 999;

    width: 20px;

    height: 45px;

    padding-top: 5px;

    color: #90ee90;

    background: #000;

    }

</style>

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,748评论 1 45
  • 深入响应式 追踪变化: 把普通js对象传给Vue实例的data选项,Vue将使用Object.defineProp...
    冥冥2017阅读 4,897评论 6 16
  • 前端开发面试题 面试题目: 根据你的等级和职位的变化,入门级到专家级,广度和深度都会有所增加。 题目类型: 理论知...
    怡宝丶阅读 2,609评论 0 7
  • 移动开发基本知识点 一.使用rem作为单位 html { font-size: 100px; } @media(m...
    横冲直撞666阅读 3,519评论 0 6
  • 有一位文友,去年五月份申请加我QQ好友。他的空间更新很快,从那些日志、说说、照片,我感觉他勤奋刻苦、积极上进...
    萧凤凰阅读 361评论 0 0