zoukankan      html  css  js  c++  java
  • vue-resource使用 (vue仿百度搜索)

    1.this.$http.get()方法
    2.this.$http.post()方法
    3.this.$http.jsonp()方法

    (vue仿百度搜索)

    在输入框中输入a, 然后在百度f12 ==> network ==> 复制js
    
    https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=a&json=1&p=3&sid=1440_25548_21098_20719&req=2&csor=1&cb=jQuery1102032174500415831986_1516022014624&_=1516022014630
    整理下
    https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=a&cb=jshow
    

    HTML

    <div id="app">
        <!-- v-model绑定数据, @keyup事件 -->
        <input type="text" v-model="keyword"  @keyup="get($event)" @keydown.down.prevent="changeDown()"  @keydown.up.prevent="changeUp()">
        <ul>
            <!-- v-for循环数据, v-bind:class="{gray:index==now}, 当前下标为true时显示灰色" -->
            <li v-for="(value, index) in myData" v-bind:class="{gray:index==now}">{{value}}</li>
        </ul>
        <!-- 判断length当数据为空时 -->
        <p v-show="myData.length==0">暂无数据...</p>
    </div>
    

    VUE.JS

    new Vue({
        el: "#app",
        data: {
            myData:[],      // 循环数据
            keyword:"",     // 输入文本值
            now: -1         // 索引
        },
    
        methods:{
            // jshow({q:"a",p:false,s:["爱奇艺","阿里云","阿里巴巴","安居客","阿里巴巴批发网","爱情公寓","安卓模拟器","acfun","apple","暗黑3"]});
            get: function(ev){
                if(ev.keyCode == 38 || ev.keyCode == 40){
                    return false;
                }
                if(ev.keyCode == 13){
                    window.open("https://www.baidu.com/s?wd=" + this.keyword);
                }
                // jsonp获取百度的搜索关键字
                this.$http.jsonp("https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=" + this.keyword + "",{
                    jsonp:"cb"          // callback函数名
                }).then(function(res){
                    this.myData = res.data.s;       // 存入搜索数据
                }, function(){
                    console.log(res.status)
                })
            },
            // 键盘下拉事件
            changeDown: function(){
                this.now++;
                if(this.now == this.myData.length){
                    this.now = -1;
                }
                this.keyword = this.myData[this.now];       // 赋值是文本框
            }, 
    
            // 键盘上拉事件
            changeUp: function(){
                this.now--;
                if(this.now == -1){
                    this.now = this.myData.length-1;
                }
                this.keyword = this.myData[this.now];       // 赋值是文本框
            }, 
        }
    })
    
  • 相关阅读:
    《演讲之禅》助你成长为一名合格程序员
    JavaScript中设置元素class的三种方法小结
    数据类型和Json格式
    JavaScript给onclick事件赋值,动态传参数实例辩错
    JSON.parse()和JSON.stringify()使用
    javascript写在<head>和<body>里的区别
    Source Insight 相关
    串口接收字符时,最后一个字符延时发送
    嵌入式编程中调试问题全记录
    新版数采仪开发问题全记录
  • 原文地址:https://www.cnblogs.com/alantao/p/8290247.html
Copyright © 2011-2022 走看看