• 2021-6-17 日报博客


    个人博客

    1.学到的东西

    11. 计算属性的使用

    目标:计算属性的应用场景,实现将一个日期时间值转换为yyyy-MM-dd格式字符串

    分析

    一个日期的毫秒值要显示为格式化(yyyy-MM-dd)的日期字符串的话;可以使用computed计算属性里面的方法进行处理。

    小结

    计算属性的应用:

    <div id="app">
        <h2>
            你的生日是:
            {{new Date(birthday).getFullYear()}}-{{new Date(birthday).getMonth()+1}}-{{new Date(birthday).getDay()}}
        </h2>
        <hr>
        <h2>
            你的生日是:
            {{birth}}
        </h2>
    </div>
    <script type="text/javascript">
        var app = new Vue({
            el:"#app",
            data:{
                birthday:1429032123201
            },
            computed:{
                birth(){
                    const date = new Date(this.birthday);
                    return date.getFullYear() + "-" + (date.getMonth()+1) + "-" + date.getDay();
                }
            }
        });
    </script>
    
    

    computed计算属性的应用场景:可以应用在插值或者指令表示式复杂的时候。可以将一些属性数据经过方法处理之后返回。

    12. watch基本和深度监控

    目标:watch的使用场景;并使用其监听简单属性值及其对象中属性值的变化

    分析

    在vue实例中数据属性;因为在页面中修改而产生了变化;可以通过watch监控获取其改变前后的值。

    如果是修改的对象数据属性,可以开启深度监控获取修改后最新的对象数据。如:person.name

    小结

    可以如下使用watch进行数据属性的监控:

    <div id="app">
        <input type="text" v-model="message">
        <hr><br>
        <input type="text" v-model="person.name"><br>
        <input type="text" v-model="person.age"><button @click="person.age++">+</button>
        <h2>
            姓名为:{{person.name}};年龄为:{{person.age}}
        </h2>
    </div>
    <script type="text/javascript">
        var app = new Vue({
            el:"#app",
            data:{
                message:"黑马",
                person:{"name":"heima", "age":13}
            },
            watch:{
                message(newValue, oldValue){
                    console.log("新值:" + newValue + ";旧值:" + oldValue);
                },
                person: {
                    //开启深度监控;监控对象中的属性值变化
                    deep: true,
                    //可以获取到最新的对象属性数据
                    handler(obj){
                        console.log("name = " + obj.name + "; age=" + obj.age);
                    }
                }
            }
        });
    </script>
    
    

    watch使用场景:可以监控视图中数据的变化而做出响应;如:下拉框列表中,当如果选择了对于的下拉框选项之后,要根据最新的值去加载一些其它数据的话。

    13. 组件使用

    目标:了解组件的使用场景;定义点击则计数的组件并使用全局注册和局部注册方式

    分析

    可以将通用或者公用的页面模块抽取成vue组件,在vue实例中引用。

    小结

    在页面中可以如下实验组件:

    <div id="app">
        <!--使用组件-->
        <counter></counter>
        <counter></counter>
        <counter></counter>
    </div>
    <script type="text/javascript">
    
        //定义组件
        const counter = {
            template:"<button @click='num++'>你点击了{{num}}次</button>",
            data(){
                return {num:0}
            }
        };
    
        //全局注册组件:在所有的vue实例中都可以使用组件
        //参数1:组件名称,参数2:具体的组件
        //Vue.component("counter", counter);
    
        var app = new Vue({
            el:"#app",
            components:{
                counter: counter
            }
        });
    </script>
    
    

    组件使用场景:在项目需要重用某个模块(头部、尾部、新闻。。。)的时候,可以将模块抽取成组件,其它页面中注册组件并引用。

    • 全局注册:在任何vue实例中都可以引用,如:一般网站的头部导航菜单
    • 局部注册:可以在有需要的页面引入组件,如:商城网站首页页面中各种活动模块

    2.明日计划

    父组件向子组件通信

    3.遇到的问题

  • 相关阅读:
    关于 省赛模拟赛(迪迦桑专场)
    ZOJ3878: Convert QWERTY to Dvorak(浙江省赛2015)
    Is It A Tree?
    Escape
    关于细节
    [UE4]AnimDynamics简介
    [UE4]武器碰撞
    [UE4]CustomAnimationBlueprintNode 自定义动画蓝图节点
    百钱买白鸡
    asp.net 标准控件的重要属性
  • 原文地址:https://www.cnblogs.com/gongyunlong-blogs/p/14915834.html
Copyright © 2020-2023  润新知