• VUE 数据绑定


    1、数据双向绑定

    <!DOCTYPE html>
    <html lang="zh">
    
        <head>
            <meta charset="UTF-8" />
            <title>vue示例</title>
        </head>
    
        <body>
            <div id="app">
                <input type="text" v-model="name" placeholder="你的名字" />
                <h1>你好,{{name}}</h1>
            </div>
            <script src="https://cdn.bootcss.com/vue/2.5.9/vue.min.js"></script>
            <script type="text/javascript">
                new Vue({
                    el: '#app',
                    data: {
                        name: ''
                    }
                });
            </script>
        </body>
    
    </html>

    2、生命周期

    vued钩子与jquery的ready函数类似,比较常用的有:

    (1)created:实例创建完成后调用,需要初始化处理一些数据时比较有用。

    (2)mounted:el挂载到实例后调用,一般第一个业务逻辑在这里开始

    (3)beforeDestory:实例销毁前调用,用来解绑监听事件。

    钩子也是作为选项写入vue实例内,钩子的this指向调用它的vue实例。

    <!DOCTYPE html>
    <html lang="zh">
    
        <head>
            <meta charset="UTF-8" />
            <title>vue示例</title>
        </head>
    
        <body>
            <div id="app">
                <input type="text" v-model="name" placeholder="你的名字" />
                <h1>你好,{{name}}</h1>
            </div>
            <script src="https://cdn.bootcss.com/vue/2.5.9/vue.min.js"></script>
            <script type="text/javascript">
                new Vue({
                    el: '#app',
                    data: {
                        name: '',
                        a:2
                    },
                    created:function(){
                        //2
                        console.log(this.a)
                    },
                    mounted:function(){
                        //<div id="app"></div>
                        console.log(this.$el)
                    }
                });
            </script>
        </body>
    
    </html>

    3、插值表达式{{}}

    <!DOCTYPE html>
    <html lang="zh">
    
        <head>
            <meta charset="UTF-8" />
            <title>vue示例</title>
        </head>
    
        <body>
            <div id="app">
                {{date}}
            </div>
            <script src="https://cdn.bootcss.com/vue/2.5.9/vue.min.js"></script>
            <script type="text/javascript">
                new Vue({
                    el: '#app',
                    data: {
                        date: new Date(),
                        a:2
                    },
                    created:function(){
                        //2
                        console.log(this.a)
                    },
                    mounted:function(){
                        var _this = this;
                        //修改date
                        _this.timer = setInterval(function(){
                            _this.date=new Date();
                        },1000);
                    },
                    beforeDestroy:function(){
                        if(this.timer){
                            //实例销毁前,清除定时器
                            clearInterval(this.timer);
                        }
                    }
                });
            </script>
        </body>
    
    </html>

    浏览器实时显示当前时间。

    4、v-html 输出html

    <!DOCTYPE html>
    <html lang="zh">
    
        <head>
            <meta charset="UTF-8" />
            <title>vue示例</title>
        </head>
    
        <body>
            <div id="app">
                <span v-html='link'></span>
            </div>
            <script src="https://cdn.bootcss.com/vue/2.5.9/vue.min.js"></script>
            <script type="text/javascript">
                new Vue({
                    el: '#app',
                    data: {
                        link: '<a href="#">这是一个连接</a>'
                    }
                });
            </script>
        </body>
    
    </html>

    解析后的html标签结构:

    5、过滤器

    <!DOCTYPE html>
    <html lang="zh">
    
        <head>
            <meta charset="UTF-8" />
            <title>vue示例</title>
        </head>
    
        <body>
            <div id="app">
                {{date | formatDate}}
            </div>
            <script src="https://cdn.bootcss.com/vue/2.5.9/vue.min.js"></script>
            <script type="text/javascript">
                var padDate=function(value){
                    return value<10?'0'+value:value;
                }
                new Vue({
                    el: '#app',
                    data: {
                        date:new Date()
                    }                ,
                    filters:{
                        //value是需要过滤的数据
                        formatDate:function(value){
                            var date = new Date();
                            var year = date.getFullYear();
                            var month = padDate(date.getMonth()+1);
                            var day = padDate(date.getDate());
                            var hours= padDate(date.getHours());
                            var minutes  = padDate(date.getMinutes());
                            var seconds = padDate(date.getSeconds());
                            return year+'-'+month+'-'+day+' '+hours+':'+minutes+':'+seconds;
                        }
                    },
                    mounted:function(){
                        var _this = this;
                        //修改date
                        _this.timer = setInterval(function(){
                            _this.date=new Date();
                        },1000);
                    },
                    beforeDestroy:function(){
                        if(this.timer){
                            //实例销毁前,清除定时器
                            clearInterval(this.timer);
                        }
                    }
                });
            </script>
        </body>
    
    </html>

     过滤器处理简单的文本转换,若需要实现复杂的数据使用计算属性

  • 相关阅读:
    用自己的算法实现startsWith和endsWith功能
    随机生成4位验证码,由用户输入并验证是否输入正确,如果输入错误就生成新的验证码让用户重新输入,最多输入5次
    二分法(网上查找结果)
    模拟摇奖:从1-36中随机抽出8个不重复的数字
    冒泡排序
    输入年龄输出年龄段
    水仙花数
    百钱买百鸡
    百马百担的问题
    控制台输出九九乘法表
  • 原文地址:https://www.cnblogs.com/mengfangui/p/8041800.html
Copyright © 2020-2023  润新知