的不错运用方式分析,for生成table并给table加上序号的实例代码

近期有贰个应用mybatis的分页插件生成的table,table中数据是因而vue获得的 , 前台展现应用<tr v-for=”item in items”>

现行有3个用到mybatis的分页插件生成的table,table中数量是透过vue得到的 , 前台展现应用<tr v-for=”item in items”>

近期有3个运用mybatis的分页插件生成的table,table中数据是通过vue获得的
, 前台彰显应用<tr v-for=”item in items”>

正文主要给我们介绍了关于Vue.nextTick()的没有错行使,分享出去供大家参考学习,上边话不多说了,来1块看看详细的牵线吧。

后台vue获取数据使用分页插件举办查询然后选用回调,将结果回到给vue的3个model

后台vue获取数据使用分页插件进行查询然后利用回调,将结果回到给vue的2个model

后台vue获取数据使用分页插件实行询问然后采取回调,将结果回到给vue的3个model

什么是Vue.nextTick()

/**
 * 分页控件加载
 * @param data
 */
function aspnetPagerInfoIM(pageDataShow,pageModule,resource, modelCallBack) {

    var pageDataShow = $("#"+pageDataShow);
    var pageModule = $("#"+pageModule);
    pageDataShow.empty();
    pageModule.empty();

    resource.get({
        page: '0'
    }).then(function(response){
        initLaypage(pageDataShow,pageModule,response.data, resource, modelCallBack);
        modelCallBack(response.data.content);
    })
}

/**
 * 初始化分页组件
 * @param page 查询出来的数据包括分页信息
 * @param resource vue的resource对象
 * @param modelCallBack 每次页面跳转回调方法 modelCallBack(response.data.content)
 */
function initLaypage(pageDataShow,pageModule,page, resource, modelCallBack) {

    var singleInvoke = false
    laypage({
        cont : pageModule,
        pages : page.totalPages, //总页数
        skin : '#fff', //加载内置皮肤
        skip: true,       //是否开启跳页
        groups : 5,       //连续显示分页数
        hash : true,      //开启hash
        jump : function(obj) {
            if(!singleInvoke) {
                singleInvoke = true;
            }else {
                resource.get({
                    page: obj.curr -1
                }).then(function(response){
                    modelCallBack(response.data.content);
                })
            }
            pageDataShow.empty();
            if(page.totalElements>0){
                $("<p>共"+page.totalElements+"条记录,"
                    +"每页"+page.size+"条,"
                    +"当前第 "+obj.curr +"/"+page.totalPages+"页"
                    +"</p>").appendTo(pageDataShow);
            }
        }
    });
}
/**
 * 分页控件加载
 * @param data
 */
function aspnetPagerInfoIM(pageDataShow,pageModule,resource, modelCallBack) {

    var pageDataShow = $("#"+pageDataShow);
    var pageModule = $("#"+pageModule);
    pageDataShow.empty();
    pageModule.empty();

    resource.get({
        page: '0'
    }).then(function(response){
        initLaypage(pageDataShow,pageModule,response.data, resource, modelCallBack);
        modelCallBack(response.data.content);
    })
}

/**
 * 初始化分页组件
 * @param page 查询出来的数据包括分页信息
 * @param resource vue的resource对象
 * @param modelCallBack 每次页面跳转回调方法 modelCallBack(response.data.content)
 */
function initLaypage(pageDataShow,pageModule,page, resource, modelCallBack) {

    var singleInvoke = false
    laypage({
        cont : pageModule,
        pages : page.totalPages, //总页数
        skin : '#fff', //加载内置皮肤
        skip: true,       //是否开启跳页
        groups : 5,       //连续显示分页数
        hash : true,      //开启hash
        jump : function(obj) {
            if(!singleInvoke) {
                singleInvoke = true;
            }else {
                resource.get({
                    page: obj.curr -1
                }).then(function(response){
                    modelCallBack(response.data.content);
                })
            }
            pageDataShow.empty();
            if(page.totalElements>0){
                $("<p>共"+page.totalElements+"条记录,"
                    +"每页"+page.size+"条,"
                    +"当前第 "+obj.curr +"/"+page.totalPages+"页"
                    +"</p>").appendTo(pageDataShow);
            }
        }
    });
}
/**
 * 分页控件加载
 * @param data
 */
function aspnetPagerInfoIM(pageDataShow,pageModule,resource, modelCallBack) {
  var pageDataShow = $("#"+pageDataShow);
  var pageModule = $("#"+pageModule);
  pageDataShow.empty();
  pageModule.empty();
  resource.get({
    page: '0'
  }).then(function(response){
    initLaypage(pageDataShow,pageModule,response.data, resource, modelCallBack);
    modelCallBack(response.data.content);
  })
}
/**
 * 初始化分页组件
 * @param page 查询出来的数据包括分页信息
 * @param resource vue的resource对象
 * @param modelCallBack 每次页面跳转回调方法 modelCallBack(response.data.content)
 */
function initLaypage(pageDataShow,pageModule,page, resource, modelCallBack) {
  var singleInvoke = false
  laypage({
    cont : pageModule,
    pages : page.totalPages, //总页数
    skin : '#fff', //加载内置皮肤
    skip: true,    //是否开启跳页
    groups : 5,    //连续显示分页数
    hash : true,   //开启hash
    jump : function(obj) {
      if(!singleInvoke) {
        singleInvoke = true;
      }else {
        resource.get({
          page: obj.curr -1
        }).then(function(response){
          modelCallBack(response.data.content);
        })
      }
      pageDataShow.empty();
      if(page.totalElements>0){
        $("<p>共"+page.totalElements+"条记录,"
          +"每页"+page.size+"条,"
          +"当前第 "+obj.curr +"/"+page.totalPages+"页"
          +"</p>").appendTo(pageDataShow);
      }
    }
  });
}

法定文书档案解释如下:

 

 

急需是:给生成的table加多序号

在下次 DOM
更新循环停止之后施行延迟回调。在修改数据今后登时使用那一个艺术,获取更新后的
DOM。

必要是:给生成的table增多序号

需假如:给生成的table增加序号

刚开头采用js的函数

自己清楚的合法文书档案的那句话的基本点在终极这半句获取更新后的DOM,获取更新后的DOM话里有话就是什么样操作须求运用了翻新后的DOM而无法利用以前的DOM也许应用更新前的DOM或出难点,所以就衍生出了这些得到更新后的DOM的Vue方法。所以放在Vue.nextTick()回调函数中的实践的相应是会对DOM举行操作的
js代码,例如Swiper扩大包的

刚起首接纳js的函数

刚初始选择js的函数

function rownum(){
  //首先拿到table中tr的数量 得到一共多少条数据
  var len = $("#tableId table tbody tr").length;
  //使用循环给每条数据加上序号
  for(var i = 1;i<len+1;i++){
    $('#tableId table tr:eq('+i+') span:first').text(i);
  }
}
var swiper = new Swiper('.swiper-container', {
   pagination: '.swiper-pagination',
   nextButton: '.swiper-button-next',
   prevButton: '.swiper-button-prev',
   paginationClickable: true,
   spaceBetween: 30,
   centeredSlides: true,
   autoplay: 2500,
   autoplayDisableOnInteraction: false
  });
function rownum(){
  //首先拿到table中tr的数量  得到一共多少条数据
    var len = $("#tableId table tbody tr").length;
   //使用循环给每条数据加上序号
    for(var i = 1;i<len+1;i++){
        $('#tableId table  tr:eq('+i+') span:first').text(i);
    }
}
function rownum(){
  //首先拿到table中tr的数量  得到一共多少条数据
    var len = $("#tableId table tbody tr").length;
   //使用循环给每条数据加上序号
    for(var i = 1;i<len+1;i++){
        $('#tableId table  tr:eq('+i+') span:first').text(i);
    }
}

将上边的点子放在点击生成table的风浪上 ,
能够显示序号,接着点击分页的下一页只怕页数,跳转到下一页的时候,序号消失了,

怎么时候必要用的Vue.nextTick()

将地点的章程放在点击生成table的事件上 ,
能够来得序号,接着点击分页的下1页也许页数,跳转到下1页的时候,序号消失了,

将上边的秘技放在点击生成table的轩然大波上 ,
能够呈现序号,接着点击分页的下一页大概页数,跳转到下一页的时候,序号消失了,

很当然的想到在点击下一页后也应该有加多序号的操作,于是找到呈现下1页数据的不2法门,加上地点的js方法,结果尚未立见功用,

  • 你在Vue生命周期的created()钩子函数举行的DOM操作必然要放在Vue.nextTick()的回调函数中。原因是什么样吗,原因是在created()钩子函数实践的时候DOM
    其实并未有开始展览其余渲染,而那时候进展DOM操作无差别于徒劳,所以那里一定要将DOM操作的js代码放进Vue.nextTick()的回调函数中。与之对应的正是mounted钩子函数,因为该钩子函数实行时持有的DOM挂载和渲染都已到位,此时在该钩子函数中开始展览任何DOM操作都不会有失常态。
  • 在数码变化后要施行的有个别操作,而以此操作须求接纳随多寡变动而改造的DOM结构的时候,那么些操作都应当放Vue.nextTick()的回调函数中。

很当然的想到在点击下1页后也理应有增多序号的操作,于是找到凸显下1页数据的措施,加上地方的js方法,结果尚未奏效,

很自然的想到在点击下壹页后也理应有加多序号的操作,于是找到展现下一页数据的法子,加上下边的js方法,结果尚未奏效,

私家感到是识破数据后rownum方法在dom没刷新前进展了丰硕,然后dom更新后,序号消失了

由来是,Vue是异步实践dom更新的,一旦观望到数码变化,Vue就会开启一个行列,然后把在同3个事变循环
(event loop) 当中观望到多少变化的 watcher
推送进那么些队列。假使这一个watcher被触发数十次,只会被推送到行列二次。那种缓冲行为能够使得的消除重复数据变成的不供给的计量和DOm操作。而在下三个事变循环时,Vue会清空队列,并张开需求的DOM更新。

村办认为是识破数据后rownum方法在dom没刷新前打开了充足,然后dom更新后,序号消失了

民用以为是摸清数据后rownum方法在dom没刷新前举办了丰裕,然后dom更新后,序号消失了

透过搜寻资料最后像下边那样使用化解了难题 ,
在各类出现分页查询的地点都加上 Vue.nextTick(function(){})方法

当你设置 vm.someData = 'new value',DOM
并不会即时更新,而是在异步队列被免除,也正是下1个事件循环开首时进行更新时才会进展须求的DOM更新。要是此时你想要根据更新的
DOM 状态去做一些事情,就会冒出难点。。为了在数据变动之后等待 Vue
实现更新 DOM ,能够在数量变化之后随即采用 Vue.nextTick(callback)
。那样回调函数在 DOM 更新落成后就会调用。

透过搜寻资料最后像上面那样使用解决了难题 ,
在各样出现分页查询的地点都丰盛Vue.nextTick(function(){})方法

透过搜寻资料最后像上面那样使用化解了难点 ,
在种种出现分页查询的地点都加上
Vue.nextTick(function(){})方法

var model={
object[]
}
spnetPagerInfoIM(electricalPageDataShow, electricalPageModule, electricalResource, function(result) {
  model.object = result;
  Vue.nextTick(function(){
    rownum();
  });
});

总结

var model={
object[]
}
spnetPagerInfoIM(electricalPageDataShow, electricalPageModule, electricalResource, function(result) {
    model.object = result;
    Vue.nextTick(function(){
        rownum();
    });
});
var model={
object[]
}
spnetPagerInfoIM(electricalPageDataShow, electricalPageModule, electricalResource, function(result) {
    model.object = result;
    Vue.nextTick(function(){
        rownum();
    });
});

一、vm.$nextTick( [callback] )

上述正是那篇小说的全部内容了,希望本文的内容对我们的读书只怕办事能推动一定的佑助,若是有疑难大家能够留言交换,多谢我们对台本之家的支持。

 

 

二、Vue.nextTick( [callback, context] )

您可能感兴趣的作品:

  • 简简单单通晓Vue中的nextTick方法
  • 的不错运用方式分析,for生成table并给table加上序号的实例代码。浅谈Vuejs中nextTick()异步更新队列源码解析
  • 详解Vue + Vuex 怎么着运用
    vm.$nextTick
  • 浅谈Vue.nextTick
    的贯彻格局
  • Vue中之nextTick函数源码分析详解
  • 详解从Vue.js源码看异步更新DOM攻略及nextTick
  • vue.js全局API之nextTick周密剖析
  • vue之nextTick周到剖析
  • 深刻精通Vue nextTick 机制

一、vm.$nextTick(
[callback] )

一、vm.$nextTick(
[callback] )

三、异步更新队列

 

 

 实例

澳门葡京 1

澳门葡京 2

<ul id="demo">
  <li v-for="item in list">{{item}}</div>
</ul>
new Vue({
  el:'#demo',
  data:{
    list=[0,1,2,3,4,5,6,7,8,9,10]
  },
  methods:{
    push:function(){
      this.list.push(11);
      this.nextTick(function(){
        alert('数据已经更新')
      });
      this.$nextTick(function(){
        alert('v-for渲染已经完成')
      })
    }
  }})

 

 

或者

 

 

this.$http.post(apiUrl)
  .then((response) => {
  if (response.data.success) {
    this.topFocus.data = response.data.data;
    this.$nextTick(function(){
          //渲染完毕
    });
    }
  }).catch(function(response) {
    console.log(response);
  });

 

 

哪些时候必要用的Vue.nextTick()

二、Vue.nextTick(
[callback, context] )

二、Vue.nextTick(
[callback, context] )

你在Vue生命周期的created()钩子函数实行的DOM操作必然要放在Vue.nextTick()的回调函数中。原因是什么啊,原因是在created()钩子函数实施的时候DOM
其实并没有开始展览其余渲染,而那时候进展DOM操作一点差距也未有于徒劳,所以那里一定要将DOM操作的js代码放进Vue.nextTick()的回调函数中。与之相应的正是mounted钩子函数,因为该钩子函数实践时具备的DOM挂载和渲染都已产生,此时在该钩子函数中开始展览任何DOM操作都不会有题目。

 

 

在数据变动后要实行的有些操作,而以此操作要求运用随多寡变动而改造的DOM结构的时候,那几个操作都应有放进Vue.nextTick()的回调函数中。

澳门葡京 3

澳门葡京 4

Vue是异步推行dom更新的,壹旦观看到数码变化,Vue就会展开一个系列,然后把在同贰个事变循环
(event loop) 当中观看到数码变化的 watcher
推送进那些队列。要是那么些watcher被触发多次,只会被推送到行列三遍。那种缓冲行为可以使得的铲除重复数据变成的不须求的企图和DOm操作。而在下1个事件循环时,Vue会清空队列,并开始展览供给的DOM更新。

 

 

当你设置

3、异步更新队列

3、异步更新队列

 vm.someData = 'new value',DOM

 

 

并不会应声更新,而是在异步队列被清除,也正是下3个轩然大波循环伊始时进行更新时才会进展须要的DOM更新。若是那时候你想要依照更新的
DOM

澳门葡京 5

澳门葡京 6

情景去做一点事情,就会产出难点。。为了在数据变化以往等待 Vue 完毕换代
DOM ,能够在数量变动现在马上采取

 

 

Vue.nextTick(callback) 。那样回调函数在 DOM 更新达成后就会调用。

 实例

 实例

总结:

<ul id="demo">
    <li v-for="item in list">{{item}}</div>
</ul>

new Vue({
    el:'#demo',
    data:{
        list=[0,1,2,3,4,5,6,7,8,9,10]
    },
    methods:{
        push:function(){
            this.list.push(11);
            this.nextTick(function(){
                alert('数据已经更新')
            });
            this.$nextTick(function(){
                alert('v-for渲染已经完成')
            })
        }
    }})
<ul id="demo">
    <li v-for="item in list">{{item}}</div>
</ul>

new Vue({
    el:'#demo',
    data:{
        list=[0,1,2,3,4,5,6,7,8,9,10]
    },
    methods:{
        push:function(){
            this.list.push(11);
            this.nextTick(function(){
                alert('数据已经更新')
            });
            this.$nextTick(function(){
                alert('v-for渲染已经完成')
            })
        }
    }})

* `Vue.nextTick(callback)`,当数码产生变化,更新后实施回调。
* `Vue.$nextTick(callback)`,当dom产生变化,更新后实践的回调。

或者

或者

如上所述是小编给大家介绍的选取vue的v-for生成table并给table加上序号,希望对大家具备扶助,假若我们有别的疑问请给自己留言,小编会及时过来我们的。在此也相当多谢我们对剧本之家网址的补助!

this.$http.post(apiUrl)
    .then((response) => {
    if (response.data.success) {
        this.topFocus.data = response.data.data;
        this.$nextTick(function(){
                    //渲染完毕
        });
        }
    }).catch(function(response) {
        console.log(response);
    });
this.$http.post(apiUrl)
    .then((response) => {
    if (response.data.success) {
        this.topFocus.data = response.data.data;
        this.$nextTick(function(){
                    //渲染完毕
        });
        }
    }).catch(function(response) {
        console.log(response);
    });

你大概感兴趣的稿子:

  • 浅谈Vue贰.0中v-for迭代语法的改变(key、index)
  • 浅析vue中常见循环遍历指令的应用
    v-for
  • 选择vue中的v-for遍历2维数组的办法
  • 消除vue组件中接纳v-for出现告警难点及v
    for指令介绍
  • vue2.0移除或转移的部分事物(移除index
    key)
  • Vue中的v-for循环key属性注意事项小结

 

 

 

 

哪些时候需求用的Vue.nextTick()

 

  1. 你在Vue生命周期的created()钩子函数举行的DOM操作必然要放在Vue.nextTick()的回调函数中。原因是何许呢,原因是在created()钩子函数施行的时候DOM
    其实并未有开始展览任何渲染,而那时开始展览DOM操作没有差异于徒劳,所以那里一定要将DOM操作的js代码放进Vue.nextTick()的回调函数中。与之相应的就是mounted钩子函数,因为该钩子函数实践时怀有的DOM挂载和渲染都已到位,此时在该钩子函数中进行别的DOM操作都不会有题目。

  2. 在多少变动后要实行的某个操作,而这个操作急需利用随多寡变动而更换的DOM结构的时候,这一个操作都应有放进Vue.nextTick()的回调函数中。

Vue是异步实践dom更新的,1旦阅览到多少变化,Vue就会开启2个行列,然后把在同三个事件循环
(event loop) 个中观看到多少变动的 watcher
推送进这一个行列。固然这几个watcher被触发多次,只会被推送到行列叁遍。这种缓冲行为足以有效的清除重复数据变成的不要求的总结和DOm操作。而在下1个轩然大波循环时,Vue会清空队列,并实行必要的DOM更新。
当你设置 vm.someData = ‘new value’,DOM
并不会立马更新,而是在异步队列被扫除,也正是下2个事变循环起来时实践更新时才会开始展览须要的DOM更新。倘诺此刻您想要依照更新的
DOM 状态去做一点事情,就会产出难点。。为了在数额变动现在等待 Vue
完结更新 DOM ,能够在数据变动之后随纵然用 Vue.nextTick(callback)
。那样回调函数在 DOM 更新完结后就会调用。

 

总结:

*
`Vue.nextTick(callback)`,当数码发生变化,更新后施行回调。
*
`Vue.$nextTick(callback)`,当dom爆发变化,更新后实行的回调。

 

切实能够参考:

 

别的壹种简易方法:

 

 <tr v-for="(index,item) in demo">
     <td>
         <input type="checkbox" name="Checkbox" class="check" value="{{item.id}}" style="float:none;height:auto;">
         {{$index + 1}}
     </td>
</tr>

 

给每一个循环的对象加上index , 使用{{$index}}获取该对象所在地点, 从0开头,
然后加1, 产生{{$index + 一}},那正是显得在页面包车型地铁剧情了

效果如下:

             
澳门葡京 7

 

澳门葡京,何以时候供给用的Vue.nextTick()

 

  1. 您在Vue生命周期的created()钩子函数实行的DOM操作必然要放在Vue.nextTick()的回调函数中。原因是什么样啊,原因是在created()钩子函数试行的时候DOM
    其实并未有开展别的渲染,而那时拓展DOM操作未有差距于徒劳,所以那边一定要将DOM操作的js代码放进Vue.nextTick()的回调函数中。与之对应的正是mounted钩子函数,因为该钩子函数实践时享有的DOM挂载和渲染都已做到,此时在该钩子函数中实行此外DOM操作都不会有题目。

  2. 在数据变动后要实行的某个操作,而这个操作急需动用随多寡变动而更动的DOM结构的时候,这一个操作都应当放进Vue.nextTick()的回调函数中。

Vue是异步试行dom更新的,一旦观看到数码变化,Vue就会展开3个系列,然后把在同二个风云循环
(event loop) 个中观望到多少变化的 watcher
推送进那些队列。假诺这么些watcher被触发多次,只会被推送到行列2次。那种缓冲行为足以使得的消除重复数据形成的不须求的测算和DOm操作。而在下二个风云循环时,Vue会清空队列,并拓展要求的DOM更新。
当你设置 vm.someData = ‘new value’,DOM
并不会立马更新,而是在异步队列被铲除,也便是下2个事变循环起来时施行更新时才会开始展览供给的DOM更新。倘使此刻您想要依据更新的
DOM 状态去做一点事情,就会产出难题。。为了在数据变动之后等待 Vue
完结更新 DOM ,能够在数量变化将来随即选择 Vue.nextTick(callback)
。那样回调函数在 DOM 更新达成后就会调用。

 

总结:

*
`Vue.nextTick(callback)`,当数码发生变化,更新后推行回调。
*
`Vue.$nextTick(callback)`,当dom发生变化,更新后施行的回调。

 

现实能够参照:

 

除此以外一种轻巧方法:

 

 <tr v-for="(index,item) in demo">
     <td>
         <input type="checkbox" name="Checkbox" class="check" value="{{item.id}}" style="float:none;height:auto;">
         {{$index + 1}}
     </td>
</tr>

 

给各种循环的目的加上index , 使用{{$index}}获取该指标所在地点, 从0起始,
然后加一, 形成{{$index + 一}},那就是展现在页面包车型客车内容了

职能如下:

              澳门葡京 8

 

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website