选项

作者: 你喜欢吃青椒吗_c744 | 来源:发表于2019-08-14 11:51 被阅读0次

学习资料:技术胖的个人网站

选项就是在Vue构造器里的配置功能的前缀(Vue已经给我们定义好了)

computed 计算选项

computed 的作用主要是对原数据进行改造输出。改造输出:包括格式的编辑,大小写转换,顺序重排,添加符号……。 便于向用户输出。

一、格式化输出结果

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <script type="text/javascript" src="../assets/js/vue.js"></script>
    <title>Computed Option 计算选项</title>
</head>
<body>
    <h1>Computed Option 计算选项</h1>
    <hr>
    <div id="app">
        {{newPrice}}
    </div>
 
    <script type="text/javascript">
        var app=new Vue({
            el:'#app',
            data:{
                price:100
            },
            computed:{
                newPrice:function(){
                    return this.price='¥' + this.price + '元';
                }
            }
        })
    </script>
</body>
</html>

现在输出的结果就是:¥100元

二、用计算属性反转数组

例如:我们得到了一个新闻列表的数组,它的顺序是安装新闻时间的顺序正序排列的,也就是早反生的新闻排在前面。这是反人类的,我们需要给他反转。这时我们就可以用到我们的计算属性了。

没有排序的新闻列表,是安装日期正序排列的。

var newsList=[
    {title:'香港或就“装甲车被扣”事件追责 起诉涉事运输公司',date:'2017/3/10'},
    {title:'日本第二大准航母服役 外媒:针对中国潜艇',date:'2017/3/12'},
    {title:'中国北方将有明显雨雪降温天气 南方阴雨持续',date:'2017/3/13'},
    {title:'起底“最短命副市长”:不到40天落马,全家被查',date:'2017/3/23'},
];
computed:{
    reverseNews:function(){
        return this.newsList.reverse();
    }
}

Methods Option 方法选项

一、methods中参数的传递

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <script type="text/javascript" src="../assets/js/vue.js"></script>
    <title>methods Option</title>
</head>
<body>
    <h1>methods Option</h1>
    <hr>
    <div id="app">
        {{ a }}
        <p><button @click="add(2)">add</button></p>
    </div>
 
    <script type="text/javascript">
        var app=new Vue({
            el:'#app',
            data:{
                a:1
            },
            methods:{
                add:function(num){
                    if(num!=''){this.a+=num}
                    else{this.a++}
                }
            }
        })
    </script>
</body>
</html>

这时,再点击按钮是每次加2个数字。

二、methods中的$event参数

<button @click=”add(2,$event)”>add</button> 

传递的$event参数都是关于你点击鼠标的一些事件和属性。

三,native 给组件绑定构造器里的原生事件。

在实际开发中经常需要把某个按钮封装成组件,然后反复使用,如何让组件调用构造器里的方法,而不是组件里的方法。就需要用到我们的.native修饰器了。

var btn={
    template:`<button>组件Add</button>`     
}

components:{
    "btn":btn
 }

<p><btn @click.native="add(3)"></btn></p>

Watch 选项 监控数据

数据变化的监控经常使用,我们可以先来看一个简单的数据变化监控的例子。例如天气预报的穿衣指数,它主要是根据温度来进行提示的,当然还有其它的,咱们就不考虑了。

有些时候我们会用实例属性的形式来写watch监控(第二种方法)。也就是把我们watch卸载构造器的外部,这样的好处就是降低我们程序的耦合度,使程序变的灵活。

app.$watch('temperature',function(newVal,oldVal){
    if(newVal>=26){
        this.suggestion=suggestion[0];
    }else if(newVal<26 && newVal >=0)
    {
        this.suggestion=suggestion[1];
    }else{
        this.suggestion=suggestion[2];
    }
 
})

Mixins 混入选项操作

Mixins一般有两种用途:

  • 在你已经写好了构造器后,需要增加方法或者临时的活动时使用的方法,这时用混入会减少源代码的污染。
  • 很多地方都会用到的公用方法,用混入的方法可以减少代码量,实现代码重用。

一、Mixins的基本用法

我们现在有个数字点击递增的程序,假设已经完成了,这时我们希望每次数据变化时都能够在控制台打印出提示:“数据发生变化”.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <script type="text/javascript" src="../assets/js/vue.js"></script>
    <title>Mixins Option Demo</title>
</head>
<body>
    <h1>Mixins Option Demo</h1>
    <hr>
    <div id="app">
        <p>num:{{ num }}</p>
        <P><button @click="add">增加数量</button></P>
    </div>
 
    <script type="text/javascript">
        //额外临时加入时,用于显示日志
        var addLog={
            updated:function(){
                console.log("数据放生变化,变化成"+this.num+".");
            }
        }
        var app=new Vue({
            el:'#app',
            data:{
                num:1
            },
            methods:{
                add:function(){
                    this.num++;
                }
            },
            mixins:[addLog]//混入,添加addLog对象。
        })
    </script>
</body>
</html>

二,mixins的调用顺序

从执行的先后顺序来说,都是混入的先执行,然后构造器里的再执行,需要注意的是,这并不是方法的覆盖,而是被执行了两遍。

在上边的代码的构造器里我们也加入了updated的钩子函数:
updated:function(){
      console.log("构造器里的updated方法。")
},
这时控制台输出的顺序是:
mixins数据放生变化,变化成2.
构造器里的updated方法。

当混入方法和构造器的方法重名时,混入的方法无法展现,也就是不起作用。

三、全局API混入方式

我们也可以定义全局的混入,这样在需要这段代码的地方直接引入js,就可以拥有这个功能了。我们来看一下全局混入的方法:

Vue.mixin({
    updated:function(){
        console.log('我是全局被混入的');
    }
})

全局混入的执行顺序要前于混入和构造器里的方法。

Extends Option 扩展选项

通过外部增加对象的形式,对构造器进行扩展。它和我们上节课讲的混入非常的类似

<body>
    <h1>Extends Optin Demo</h1>
    <hr>
    <div id="app">
        {{message}}
        <p><button @click="add">add</button></p>
    </div>
 
    <script type="text/javascript">
        var bbb={
            created:function(){
                console.log("我是被扩展出来的");
            },
            methods:{
                add:function(){
                    console.log('我是被扩展出来的方法!');
                }
            }
        };
        var app=new Vue({
            el:'#app',
            data:{
                message:'hello Vue!'
            },
            methods:{
                add:function(){
                    console.log('我是原生方法');
                }
            },
            extends:bbb //在内部声明注册扩展bbb
        })
    </script>
  • 执行顺序是,先构造器里面的方法先执行,后是外面的执行。
  • 如果方法名相同,只执行构造器里面的方法。

delimiters 选项

delimiters的作用是改变我们插值的符号。Vue默认的插值是双大括号{{}}。但有时我们会有需求更改这个插值的形式。

var app = new Vue({

  
  delimiters:['${','}']
})

现在我们的插值形式就变成了${}。

相关文章

  • 五.Linux之grep命令

    grep命令选项 grep选项demo 无选项 -c选项 -n选项 -v选项 -i选项 -h选项 -l选项 -s选...

  • 二十四、SQLMap自动注入-(8)Enumeration类

    目录选项--current-user选项--current-db选项 --hostname选项 --users选项...

  • 二十四、SQLMap自动注入-(5)Injection类

    目录选项 -p选项--skipURI注入点选项--dbms选项--os选项--invalid-bignum/--i...

  • Vue API 概览

    API 全局配置 全局 API 选项 / 数据 选项 / DOM 选项 / 生命周期钩子 选项 / 资源 选项 /...

  • 初探jQuery

    封装一个函数html部分 选项1 选项2 选项3 选项4 选项5 js部分function getSi...

  • 选项

    ——你好,我的孩子总去网吧,我担心他有抑郁症,有时间想请你给他看看,开导一下 ——可以约个时间领孩子过来。 收费标...

  • 选项

    选项 零个或多个下列选项字母组成的系列. 例如:d x50 y25。 NA [v1.0.45+]: 也许可以提高可...

  • 选项

    澄澈的午后 你一点 一点抬起头 像深情地在 仰视天空 看日光,看云朵,看电缆 又或像是在看一只 天空下的蜻蜓 你慢...

  • 选项

    layout: docs-default 选项 WS-Federation 插件的 WsFederationPlu...

  • 选项

    layout: docs-default IdentityServerBearerTokenAuthenticat...

网友评论

      本文标题:选项

      本文链接:https://www.haomeiwen.com/subject/dcawjctx.html