10.VUE学习之使用lodash库减少watch对后台请求的压力
问题描述
使用watch监听库里word的值的变化,获取新值后,用oxios发送的ajax异步请求,
此时会多次发送请求,浪费服务器资料.
解决办法
使用lodash库里的_.debounce函数延缓异步请求的时间,减少对后台请求的压力,设定库里值动态变化后在规定的时间后再异步请求
步骤:
1.安装lodash.
npm install lodash
使用说明:
文档地址:
https://www.css88.com/doc/lodash/#_debouncefunc-wait0-options
2.页面里引入js
<script type="text/javascript" src="../vue/node_modules/lodash/lodash.js"></script>
3.使用_.debounce函数
_.debounce(func, [wait=0], [options={}])
4.完整代码:
10.html
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>vue</title>
    <link rel="stylesheet" href="">
    <!--<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>-->
    <script type="text/javascript" src="../js/vue.js"></script>
    <!---发送异步请求-->
    <script type="text/javascript" src="../vue/node_modules/axios/dist/axios.js"></script>
    <!---延缓异步请求的时间-->
    <script type="text/javascript" src="../vue/node_modules/lodash/lodash.js"></script>
</head>
<body>
<div id="vue">
    <!--当input里的值改变时,会改变data里的word-->
    <input type="text" v-model="word">
    <h1>
        <!--拿到data里的result里的值-->
        结果:{{result}}
    </h1>
</div>
</body>
<script type="text/javascript">
    var app=new Vue({
        el:'#vue',
        watch:{ //监听data里的word的变化
            //			拿到input里的新值和旧值
            word:_.debounce(
                    function(new_v,old_v){
                        //		        console.log(new_v+'=>'+old_v);
                        var url = '9.php?word='+new_v;
                        //				ajax get异步请求
                        axios.get(url).then(function(response){
                            console.log(response);
                            app.result = response.data //赋值给data里的result
                        });
                    },1000 //1秒后执行
            )
        },
        data:{
            word:'',
            result:''
        }
    });
</script>
</html>
10.php
<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2019/1/5
 * Time: 10:42
 */
print_r('要搜索的内容是:'.$_GET['word']);
?>
												
											10.VUE学习之使用lodash库减少watch对后台请求的压力的更多相关文章
- 010——VUE中使用lodash库减少watch对后台请求的压力
		
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
 - Vue 使用lodash库减少watch对后台请求压力
		
lodash需要新引入 我使用的是npm方式 使用lodash的_.debounce方法 具体代码: <!doctype html> <html lang="en" ...
 - 10 Vue 学习   shortList页面
		
1: shortList页面代码如下: <template> <div class="fillcontain"> <head-top></ ...
 - day 86 Vue学习之五DIY脚手架、webpack使用、vue-cli的使用、element-ui
		
本节目录 一 vue获取原生DOM的方式 二 DIY脚手架 三 vue-cli脚手架的使用 四 webpack创建项目的玩法 五 element-ui的使用 六 xxx 七 xxx 八 xxx 一 ...
 - day  83  Vue学习之五DIY脚手架、webpack使用、vue-cli的使用、element-ui
		
Vue学习之五DIY脚手架.webpack使用.vue-cli的使用.element-ui 本节目录 一 vue获取原生DOM的方式 二 DIY脚手架 三 vue-cli脚手架的使用 四 we ...
 - day 83 Vue学习三之vue组件
		
本节目录 一 什么是组件 二 v-model双向数据绑定 三 组件基础 四 父子组件传值 五 平行组件传值 六 xxx 七 xxx 八 xxx 一 什么是组件 首先给大家介绍一下组件(componen ...
 - Vue学习看这篇就够
		
Vue -渐进式JavaScript框架 介绍 vue 中文网 vue github Vue.js 是一套构建用户界面(UI)的渐进式JavaScript框架 库和框架的区别 我们所说的前端框架与库的 ...
 - day  82  Vue学习三之vue组件
		
Vue学习三之vue组件 本节目录 一 什么是组件 二 v-model双向数据绑定 三 组件基础 四 父子组件传值 五 平行组件传值 六 xxx 七 xxx 八 xxx 一 什么是组件 首先给 ...
 - day 84 Vue学习四之过滤器、钩子函数、路由、全家桶等
		
本节目录 一 vue过滤器 二 生命周期的钩子函数 三 vue的全家桶 四 xxx 五 xxx 六 xxx 七 xxx 八 xxx 一 Vue的过滤器 1 moment.js 在这里我们先介绍一个 ...
 
随机推荐
- 记一次内存溢出java.lang.OutOfMemoryError: unable to create new native thread
			
一.问题: 春节将至,系统访问量进入高峰期.随之系统出现了异常:java.lang.OutOfMemoryError: unable to create new native thread.在解决这个 ...
 - Linux中vim编辑器的缩进的功能键
			
vim编程时,经常需要对代码进行缩进处理,以增加程序的可读性和后期的代码维护. 可以采用多种方式达到缩进的目的: 1) 命令模式(command mode) 2) Visual模式(visual mo ...
 - 【Linux】linux下vi命令大全
			
进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后 ...
 - easyui框架中关于dialog自带关闭事件的使用
			
easyui是一个开源的第三方控件库,虽然使用比较方便,但其中有些事件和样式会与其他的控件或者框架形成冲突. 今天谈一下easyui 中dialog这个控件(对话框) easyui dialog一般在 ...
 - 内容显示分页数字分页 aspx
			
此处是aspx里面分页显示,数据层和业务层是由动软生成 当然,我们也可以可以利用listView实现分页ListView(高效分页) public partial class NewList : Sy ...
 - MVVM技术 - 的实现  @{}来进行 调用那个 DataBinding方法
			
new Material Design 支持哭 还有 Data Binding 结束 使用DataBindign 结束 我们很方面的实现 MVVM设计模式 什么是MVVM model 呢. ...
 - MATLAB之折线图、柱状图、饼图以及常用绘图技巧
			
MATLAB之折线图.柱状图.饼图以及常用绘图技巧 一.折线图 参考代码: %图1:各模式直接成本预测 %table0-table1为1*9的数组,记录关键数据 table0 = data_modol ...
 - Eucalyptus(v4.0)系统需求
			
1.计算需求 Physical Machines: All Eucalyptus components must be installed on physical machines, not virt ...
 - 常用CSS3属性整理
			
常用CSS3属性整理 文本 文本超出部分折叠 white-space:nowarp; overflow:hidden; text-overflow:ellipsis word-warp 边界换行 no ...
 - Linux、命令ps 各字段意思
			
参数: -A :所有的进程均显示出来,与 -e 具有同样的效用: -a : 显示现行终端机下的所有进程,包括其他用户的进程: -u :以用户为主的进程状态 : x :通常与 a 这个参数一起使用,可列 ...