深圳微信小程序开发_详解VUE的状态控制与延时加

发布时间:2021-01-12 12:38 作者:jianzhan

摘要: 详细说明VUE的情况操纵与廷时载入更新 在具体新项目中,大家常常会碰到这类情况,一些数据信息大家期待直到必须的情况下再去获得,或是一些数据信息大家必须更新,可是无

详解VUE的状态控制与延时加载刷新       本篇文章主要介绍了详解VUE的状态控制与延时刷新,实例分析了数据延时到展示的时候再去刷新的技巧,有兴趣的可以了解一下。

在实际项目中,我们经常会遇到这种状况,某些数据我们希望等到需要的时候再去获取,或者某些数据我们需要刷新,但是不必立刻刷新,而是延时到展示的时候再去刷新。

在DOM操作的年代,想要实现这样的功能可能会稍微麻烦一些,然而当我们使用数据驱动的mv*框架的时候,这个想要实现这个需求就容易了许多。

当我们理解数据驱动时,我们很容易想到将需要刷新的状态也设置成为某个数据,在需要刷新的地方watch这个数据,当刷新状态发生变动的时候,watch生效并执行刷新的方法,这就实现了延时刷新。而且我们不再需要关注延时的过程,只需要更改刷新状态就可以了。

现在我们用Vue来实现一个状态驱动的延时刷新。

首先我们利用vue的混合来实现一个统一的刷新接口,你可以把混合理解成一种特殊的继承来使用。

//刷新mixin
var refreshMixin = {
 pro凡科抠图: ['refresh'],
 watch: {
 //状态监视
 'refresh': function (val) {
 //console.log(val)
 //刷新列表
 val this.refreshData()
 created: function () {
 this.refresh this.refreshData()
}

在这个refreshMixin中,当组建创建或者refresh状态发生变更时,判断状态是否是true,如果是true,则调用组建的refreshData方法。

我们在组建当中混合这个refreshMixin,并且实现refreshData方法,就可以实现状态驱动刷新。

注意,refresh状态使用双向绑定,并且在调用refreshData方法时立刻将refresh状态置为false,以便下次调用。

下面给予一个完整的demo

 html 
 head 
 meta charset="utf-8" / 
 title /title 
 script src="vue/1.0.26/vue.min.js" /script 
 /head 
 body 
 div id="root" 
 delay-test v-bind:refresh.sync="testRefresh"
 v-bind:num.sync="num" /delay-test 
 button type="button" v-on:click="refreshTest" 刷新组件数据 /button 
 /div 
 template id="delayTempl" 
 div 
 延时加载数据: {{num}}
 /div 
 /template 
 script type="text/javascript" 
 //刷新mixin
 var refreshMixin = {
 pro凡科抠图: ['refresh'],
 watch: {
 //状态监视
 'refresh': function (val) {
 //console.log(val)
 //刷新列表
 val this.refreshData()
 created: function () {
 this.refresh this.refreshData()
 //延时加载数据组件
 var delayComp = Vue.extend({
 template: '#delayTempl',
 mixins: [refreshMixin],
 pro凡科抠图: ['num'],
 methods: {
 refreshData: function () {
 var self = this
 //注意,refresh状态使用双向绑定,并且在调用refreshData方法时立刻将refresh状态置为false,以便下次调用
 self.refresh = false
 setTimeout(function () {
 self.num++
 }, 5000)
 //根实例
 var vm = new Vue({
 el: '#root',
 data: {
 testRefresh: false,
 num: 0,
 methods: {
 refreshTest: function () {
 this.testRefresh = true
 components: {
 delayTest: delayComp,
 /script 
 /body 
 /html 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持凡科。


  • 企业法定代表人租英国网

    法纪晚报讯(新闻记者 洪雪)3三岁企业法律规定意味着人刘晶晶租赁英国网络服务器运营情色网站,根据向VIPvip会员收费标准牟取暴利,在其中还包括未满十八岁人淫秽信息内容,一

  • http/https等网络爬虫代理商

    的基本要素,看一下代理商商IP是如何进行隐藏的 基本要素 代理商商实际上就是代理商商互联网网络服务器,代理商商IP的功效就是代理商商互连网消费者去得到互连网信办息內容。应

  • 阿里巴巴云公布三年再投

    模拟题目:阿里巴巴巴巴云发布三年再投两千亿元 4月22日,阿里巴巴巴巴云发布:未来三年再投两千亿元,用于云具体实际操作系统软件手机软件、互联网网络服务器、集成化ic、互连

  • 美女大学生卖淫,一场手

    点一下一个本人互联网网络服务器的网址,网站的首页就出现了20多幅靓丽女孩的照片,倘若不知道道道真正状况,许多人要觉得这儿是个模特相片网站,可是在网页页面网页页面下方

  • 初学者怎样在三天内迅速

    模拟题目:新手如何在三天内快速建立一个百度搜索检索营销推广营销推广账号 现如今很多做百度搜索检索竟价营销推广营销推广的公司开启百度搜索检索营销推广营销推广账号之后都