• Vue常用属性功能


    一、过滤器

      1、简介:在vue对象内自定义的,用于控制数据输出。

      2、实例:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="vue.min.js"></script>
    </head>
    <body>
    <div id="id_div1">
        <div>{{name|upper}}</div>
    </div>
    <script>
        var vueObj = new Vue({
            el: '#id_div1',
            data: {
                name: 'tom'
            },
            filters: {
                upper: function (x) {  // 定义过滤器
                    return x.toUpperCase()  // 返回过滤结果
                }
            }
        })
    </script>
    </body>
    </html>
    View Code

      3、全局过滤器,在实例化vue对象之前,可以用vue的类方法:Vue.filter(全局过滤器名, function(形参){return}。

    二、计算属性

      1、简介:将data属性中的数据进过计算后输出。

      2、实例:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="vue.min.js"></script>
    </head>
    <body>
    <div id="id_div1">
        <div>第一个数:<input type="text" v-model="num1"></div>
        <div>第二个数:<input type="text" v-model="num2"></div>
        <div>结果:<input type="text" v-model="sum" disabled></div>
    </div>
    <script>
        var vueObj = new Vue({
            el: '#id_div1',
            data: {
                num1: 0,
                num2: 0
            },
            computed: {
                sum: function () {
                    return Number(this.num1) + Number(this.num2)
                }
            }
        })
    </script>
    </body>
    </html>
    View Code

    三、监听属性

      1、简介:给一个数据绑定监听属性,一旦该数据发生变化,捕获其变化前后的值,并按照定义好的方法输出。

      2、实例:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="vue.min.js"></script>
    </head>
    <body>
    <div id="id_div1">
        <div>修改前:{{old_num}}</div>
        <div>修改后:{{new_num}}</div>
        <input type="button" @click="num++">
    </div>
    <script>
        var vueObj = new Vue({
            el: '#id_div1',
            data: {
                num: 0,
                old_num: null,
                new_num: null
            },
            watch: {
                num: function (old_v, new_v) {
                    this.old_num = old_v
                    this.new_num = new_v
                }
            }
        })
    </script>
    </body>
    </html>
    View Code

    四、vue对象生命周期与钩子函数

      1、生命周期:vue对象从初始化创建到销毁,会经过若干个阶段,这些阶段合起来就是生命周期。

      2、钩子函数:在生命周期的各个阶段的固定节点,有内置的的函数,可以自定义这些函数的输出格式。

      3、实例:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="vue.min.js"></script>
    </head>
    <body>
    <div id="id_div1">
    
    </div>
    <script>
        var vueObj = new Vue({
            el: '#id_div1',
            data: {},
            beforeCreate: function () {
            },  // vue对象即将创建
            created: function () {
            },  // vue对象创建完成,已经绑定好标签
            beforeMount: function () {
            },  // 准备同步data数据
            mounted: function () {
            },  // data数据已同步到页面
            beforeUpdate: function () {
            },  // 某个data数据即将更新
            updated: function () {
            },  // data数据的更新结果已同步到页面
            beforeDestroy() {
            },  // vue对象即将销毁
            destroyed() {
            }  // vue对象已销毁
        });
    </script>
    </body>
    </html>
    View Code

    五、事件冒泡

      1、定义:父子标签的事件响应区域重叠导致的连锁触发。

      2、坏处:可能会发生功能或数据错乱。

      3、好处:正确使用这个机制,可以实现事件委托,提高性能。

      4、阻止事件冒泡,实例:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="vue.min.js"></script>
    </head>
    <body>
    <div id="id_div1">
        <div style=" 100px; height: 100px; border: red 5px solid" @click="alert(1111)">
            <div style=" 30px; height: 30px; border: red 5px solid" @click.stop="alert(2222)"></div>
        </div>
    </div>
    <script>
        var vueObj = new Vue({
            el: '#id_div1',
            data: {},
        })
    </script>
    </body>
    </html>
    View Code

      5、事件委托,实例:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="vue.min.js"></script>
    </head>
    <body>
    <div id="id_div1">
        <div style=" 150px; height: 150px; border: red 5px solid" @click="func1">
            <div style=" 30px; height: 30px; border: red 5px solid">222</div>
            <div style=" 30px; height: 30px; border: red 5px solid">333</div>
            <div style=" 30px; height: 30px; border: red 5px solid">444</div>
        </div>
    </div>
    <script>
        var vueObj = new Vue({
            el: '#id_div1',
            data: {},
            methods: {
                func1: function (tri) {
                    var self = tri.target  // 获取原始触发标签
                    alert(self.innerText)
                }
            }
        })
    </script>
    </body>
    </html>
    View Code

    六、默认事件

      1、定义:某些标签如果触发了一个事件后会额外执行默认的响应,如button按钮的默认刷新页面。

      2、阻止默认事件,实例:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="vue.min.js"></script>
    </head>
    <body>
    <div id="id_div1">
        <form action="">
            <input type="text">
            <button @click.prevent="alert(11111)">提交</button>
        </form>
    </div>
    <script>
        var vueObj = new Vue({
            el: '#id_div1',
            data: {},
        })
    </script>
    </body>
    </html>
    View Code

      3、阻止冒泡事件和阻止默认事件的方法可以链式使用。

  • 相关阅读:
    感悟
    shadow classification
    interpolation
    c语言调试技巧
    注册博客园
    用jQuery实现图片预加载和等比例缩小,大图可以点击关闭
    焦点图,带数字显示,支持常见浏览器
    又一个jquery轮播效果,焦点图,带数字显示序号,这个可以添加对应标题在图片上,支持主流浏览器
    纯css下拉菜单,支持CSS3圆角
    Jquery 下拉菜单,可以设置颜色,支持CSS3圆角
  • 原文地址:https://www.cnblogs.com/caoyu080202201/p/13153513.html
Copyright © 2020-2023  润新知