zoukankan      html  css  js  c++  java
  • 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.遇到的问题

  • 相关阅读:
    Java weak reference
    Java 代理模式
    Eclipse 代码自动提示
    Eclipse 设置默认编码为Utf-8
    MyBatis 作用域(Scope)和生命周期
    MyBatis 命名空间与命名解析
    Java 泛型 介绍
    【总结】过去的风口让很多人改变了阶层,我们90后的下一个风口会是什么?
    【前端】js截取or分割字符串的常见方法
    基于react/vue的移动端终极适配方案vw单位(更新css-modules配置)
  • 原文地址:https://www.cnblogs.com/gongyunlong-blogs/p/14915834.html
Copyright © 2011-2022 走看看