vue起步(2)之數(shù)據(jù)交互

vue中的交互(ajax,jsonp)

vue中也存在像ajax和jsonp的數(shù)據(jù)交互,實現(xiàn)向服務(wù)器獲取數(shù)據(jù),但是他本身框架當中沒有這樣的方法,需要一個新的小東西叫vue-resouce.js 地址:https://github.com/pagekit/vue-resource/blob/master/README.md

    <meta charset="UTF-8">
    <title>Document</title>
    <script type="text/javascript" src="vue.js"></script>
    <script type="text/javascript" src="vue-resource.js"></script>
    <style type="text/css">
    </style>
</head>
<body>
<div id="app">
    <button @click="get()">按鈕</button>
</div>
    <script type="text/javascript">
    var vm=new Vue({
        el:'#app',
        data:{
            
        },
        methods:{
             get:function(){
                        this.$http.get('a.txt').then(function(res){
                           alert(res.data);
                        },function(res){
                            alert(res.data);
                        });
                    }

            }
    });
    </script>
</body>```
$http 就類似于ajax 他可以this.$http.get   this.$http.post還有一種就是jsonp完成跨域取數(shù)據(jù)
```<body>
<div id="app">
    <button @click="get()">按鈕</button>
</div>
    <script type="text/javascript">
    var vm=new Vue({
        el:'#app',
        data:{  
        },
        methods:{
             get:function(){
                        this.$http.jsonp('https://sug.so.#/suggest'{word:'b'}).then(function(res){
                           alert(res.data.s);
                        },function(res){
                            alert(res.status);
                        });
                    }

            }
    });
    </script>
</body>

跨域取數(shù)據(jù)百度下拉例子:

    <meta charset="UTF-8">
    <title>Document</title>
    <script type="text/javascript" src="vue.js"></script>
    <script type="text/javascript" src="vue-resource.js"></script>
    <style type="text/css">
    *{ margin:0; padding: 0;}
    .bg{width: 200px; line-height:30px;}
    </style>
</head>
<body>
<div id="app">
    <input type="text" v-model="t" @keyup="get($event)" @keydown.down="changeDown()" @keyup.up.prevent="changeUp()"/>
    <ul>
        <li v-for="val in arr" class="bg">
            {{val}}
        </li>
    </ul>
    <p v-show="arr.length==0">暫無數(shù)據(jù)</p>
</div>
    <script type="text/javascript">
    var vm=new Vue({
        el:'#app',
        data:{
            arr:[],
            t:'',
            iNow:-1
        },
        methods:{
             get:function(ev){
                if(ev.keyCode==38||ev.keyCode==40){
                    return;
                }
                if(ev.keyCode==13){
                    window.open('https://www.baidu.com/s?wd='+this.t);
                    this.t=''
                }
                this.$http.jsonp('https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su',{wd:this.t},{jsonp:'cb'}).then(function(res){
                   this.arr=res.data.s
                },function(res){
                    alert('失敗');
                });
            },
            changeDown:function(){
                this.iNow++;
                if(this.iNow==this.arr.length)iNow=-1;
                this.t=this.arr[this.iNow];
            },
            changeUp:function(){
                this.iNow--;
                 if(this.iNow==-2)this.iNow=this.arr.length-1
                this.t=this.arr[this.iNow];
            }
            }
    });
    </script>
</body>```
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容