Vue课程学习笔记-day04

复习
    1、表单
        <select v-model='form.categoryId'>
            <option :value='item.id' v-for="item in category" :key='item.id'>{{item.name}}</option>
        </select>

        <input type='checkbox' v-model='form.options' value='css'>css
        <input type='checkbox' v-model='form.options' value='vue'>vue

        data(){
            retutn {
                form:{
                    options:[]
                }
            }
        }

    2、修饰符
        v-model.lazy
        v-model.number
        v-model.trim
    
    3、vue生命周期钩子函数
        <div id='app'>
            {{msg}}
        </div>
        new Vue({
            el:'#app',
            data(){
                return {
                    msg:'hello vue'
                }
            },
            methods:{

            }
        })

        beforeCreate
        *created
        beforeMount
        *mounted
        beforeUpdate
        updated
        beforeDestory
        destoryed
    
    4、计算属性computed
        computed vs 方法 vs 声明式渲染
        1. 处理data中的数据,当data中的数据发生改变,computed立即重新计算
        2. 对于一切复杂的数据逻辑,都推荐computed
        3. 多次使用数据时,方法会执行多次,但是computed只会执行一次
        4. 
            computed:{
                reverseMsg(){
                    return xxx;
                }
            }
            ==>
            computed:{
                reverseMsg:{
                    get:function(){
                        return xxx;
                    },
                }
            }

    5、时间处理的方法
        1. 计算属性
        2. methods中定义方法
        3. 过滤器
    
    6、过滤器(filter)
        1. 过滤器,用于处理一些常见的文本格式(时间格式)
            filters:{
                dateFormat(time){
                    retutn moment(time).format();
                }
            }
            <td>{{item.regTime | dateFormat}}</td>

        2. 过滤器可以使用的地方
            双大括号加管道符号 |
                {{item.regTime | dateFormat}}
            v-bind表达式
                <div v-bind:id="rawId | formatId"></div>
        
        3. 过滤器可以串联
            {{message | dateFormatA | dateFormatB}}
            表达式message的值将作为参数传递给dateFormatA
            然后将dateFormatA的结果作为参数传递给dateFormatB
        
        4. 过滤器的定义方式(参考2-filter.html)
            全局注册和局部注册
            全局注册
                Vue.filter('过滤器名称',function(time){
                    return xxxx;
                })
            局部注册
                data(){},
                methods:{},
                filters:{
                    过滤器名称(time){
                        return xxx;
                    }
                },
            使用
                {{date | 过滤器名称}}
            注意:
                1、使用全局注册时,一定要在vue实例对象创建之前,否则会报错
                2、过滤器调用的时候,采用就近原则
                    当全局注册的过滤器和局部注册的过滤器的名称一致时,采用局部注册的过滤器
        
        5. 与将时间处理放在methods中对比
            如果在其他页面也需要处理时间,使用全局注册的过滤器,只要定义一次即可
            而方法需要重复的写多次
            
        拓展
            1. 页面滚动到最上方
            2. 滚动条样式
            参考案例:3-toTop.html
            插件名:nicescroll

    7、监听器(watch)
        1) 使用场景
            1. 需要在数据变化时执行异步操作
            2. 开销比较大的操作
            比如分页功能、搜索功能

        2) 基础语法
            watch:{
                '变量':function(now,old){
                    // now是当前值
                    // old是之前的值
                }
            }

            1. 对于普通字符串监听
                msg:'',
                watch:{
                    msg:function(){

                    }
                }
            2. 对于对象的属性的监听
                1、需要监听的对象的属性没有初始值
                    只会监听到一次,如果删除重新输入,监听不到
                1、需要监听的对象的属性有初始值
                    直接监听不到
                
                解决:
                    1、对于对象的属性进行单个的监听
                        form:{}
                        wantch:{
                            'form.username':function(){
                                
                            }
                        }
                    2、*深度监听
                        form: {
                            handler: function (now, old) {
                                console.log('now', now)
                                console.log('old', old)
                            },
                            deep: true
                        },
                        会监听到form对象中所有属性的变化
                
                    3、对对象的多个属性进行监听,其他属性不监听
                        参考:5-watch2.html
              

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值