微信扫一扫打赏支持

legend2---开发日志9(vue常见无法自动更新改变的原因是什么)

legend2---开发日志9(vue常见无法自动更新改变的原因是什么)

一、总结

一句话总结:没找到变量,比如在computed属性中vue的变量没加this

没找到变量

 

1、函数中var bottom_exp_bar_vm = new Vue()这句代码中js中找不到bottom_exp_bar_vm 的原因是什么?

函数中带var的变量是局部变量
局部变量函数外找不到

函数中带var的变量是局部变量,函数外肯定找不到

 

2、觉得工作量很多怎么解决(比如妖族的图片)?

编号

可以编号即可,这样能够很清晰的知道流程,还有完成进度和成就感

 

3、vue如何自动读秒(比如免费招募时间的自动更新)?

computed属性配合setInterval()
让表示js当前时间戳的变量自动变化

computed属性配合setInterval() 让表示js当前时间戳的变量自动变化

<script>
    $(function () {
        //控制【弹出奖励的】的vue代码
        main_content = new Vue({
            el: '#main_content',
            data: {
                heroes: window.heroes,
                school_time: window.school_time,
                template_hero_collections: window.template_hero_collections,
                js_ts:new Date().getTime(),
            },
            computed: {
                // 投奔英雄的【免费刷新】时间计算
                st_recruit_touben_time: function () {
                    // `this` 指向 vm 实例
                    var time1=0;
                    var php_ts=school_time.st_recruit_touben;
                    if(((php_ts+1)*1000-this.js_ts)>=0) time1=(php_ts+1)*1000-this.js_ts;
                    return get_hms(time1);
                },
                // 低级招募英雄的【免费一次】时间计算
                st_recruit_low_time: function () {
                    // `this` 指向 vm 实例
                    var time1=0;
                    var php_ts=school_time.st_recruit_low;
                    if(((php_ts+1)*1000-this.js_ts)>=0) time1=(php_ts+1)*1000-this.js_ts;
                    return get_hms(time1);
                },
                // 高级招募英雄的【免费一次】时间计算
                st_recruit_high_time: function () {
                    // `this` 指向 vm 实例
                    var time1=0;
                    var php_ts=school_time.st_recruit_high;
                    if(((php_ts+1)*1000-this.js_ts)>=0) time1=(php_ts+1)*1000-this.js_ts;
                    return get_hms(time1);
                },
            }
        });
        //刷新js_ts
        setInterval(function () {
            main_content.js_ts=new Date().getTime();
        },1000);
        console.log(main_content.school_time);
        console.log(parseInt((new Date()).getTime()/1000));
        $('#main_content').show();

    });
</script>

 

 

4、vue对于v-if中的内容会自动刷新么,比如招募时免费按钮的显示?

对于v-if中的会自动刷新

对于v-if中的会自动刷新,computed属性里面想自动刷新的话加一个setInterval即可,保证computed里面的vue变量加this

<a v-if="school_time.st_recruit_high>parseInt((new Date()).getTime()/1000+1)" onclick="recruit_hero(2,1)" class="btn btn-primary btn-xs recruit_hero">招募一次</a>

 

 

5、宗门时间表、宗门灵石表等表怎么处理节约数据库操作时间(从缓存方面思考)?

在base控制器中把对应表的id放进session

其实可以把宗门对应的时间表,灵石表的id都读到基础控制器base里面,也就是把对应的id放进session里面,这样每次找的时候可以直接从找id来从查找数据,而不用其它比如宗门id这样的条件

 

6、vue的computed的getter和setter方法的作用是什么?

getter是别人发生改变自己跟着变
setter是自己发生改变也让别人跟着变

 

7、vue计算属性变量书写需要注意什么?

computed中的vue中的变量一定要带this

computed中的vue中的变量一定要带this,这时候this表示vue,不然可能找不到

 

8、vue计算属性computed触发条件的依赖变量最好怎么写(data的属性改变,但是是根据data的属性做的computed,想要保住computed更新,最好怎么做)?

计算属性中依赖的vue变量最好是后面改变要更新的

计算属性中依赖的vue变量最好是后面改变要更新的,比如计算属性中依赖的是data,那么更新就更新data,同理如果是data的某个属性

 

 

9、函数的传入参数名怎么写才好?

写的见名知意

写的见名知意,这样就不用看参数注释了

 

10、服务器给ajax返回是否成功用什么好(用数字好还是用true,false好)?

用数字好  不同的success_num表示不同成功或者失败的原因

用success_num,不同的success_num表示不同成功或者失败的原因

 

 

 

二、内容在总结中

1、相关知识

 

 

2、代码

 

 

 
posted @ 2019-04-18 03:54  范仁义  阅读(465)  评论(0编辑  收藏  举报