前端笔记Vue项目day2(四)

过滤器
  • Vue.js允许自定义过滤器,可被用于一些常见的文本格式化。

  • 过滤器可以用在两个地方:双花括号插值和v-bind表达式。

  • 过滤器应该被添加在JavaScript表达式的尾部,由“管道”符号指示

  • 支持级联操作

  • 过滤器不改变真正的data,而只是改变渲染的结果,并返回过滤后的版本

  • 全局注册时是filter,没有s的。而局部过滤器是filters,是有s的

  • [AppleScript] 纯文本查看 复制代码

    ?

    01

    02

    03

    04

    05

    06

    07

    08

    09

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    <div id="app">

        <input type="text" v-model='msg'>

          <!-- upper 被定义为接收单个参数的过滤器函数,表达式  msg  的值将作为参数传入到函数中 -->

        <div>{{msg | upper}}</div>

        <!-- 

          支持级联操作

          upper  被定义为接收单个参数的过滤器函数,表达式msg 的值将作为参数传入到函数中。

              然后继续调用同样被定义为接收单个参数的过滤器 lower ,将upper 的结果传递到lower中

             -->

        <div>{{msg | upper | lower}}</div>

        <div :abc='msg | upper'>测试数据</div>

      </div>

     

    <script type="text/javascript">

       //  lower  为全局过滤器    

       Vue.filter('lower', function(val) {

          return val.charAt(0).toLowerCase() + val.slice(1);

        });

        var vm = new Vue({

          el: '#app',

          data: {

            msg: ''

          },

           //filters  属性 定义 和 data 已经 methods 平级

           //  定义filters 中的过滤器为局部过滤器

          filters: {

            //   upper  自定义的过滤器名字

            //    upper 被定义为接收单个参数的过滤器函数,表达式  msg  的值将作为参数传入到函数中

            upper: function(val) {

             //  过滤器中一定要有返回值 这样外界使用过滤器的时候才能拿到结果

              return val.charAt(0).toUpperCase() + val.slice(1);

            }

          }

        });

      </script>

  • 过滤器中传递参数
  • [AppleScript] 纯文本查看 复制代码

    ?

    01

    02

    03

    04

    05

    06

    07

    08

    09

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    <div id="box">

            <!--

                            filterA 被定义为接收三个参数的过滤器函数。

                              其中 message 的值作为第一个参数,

                            普通字符串 'arg1' 作为第二个参数,表达式 arg2 的值作为第三个参数。

                    -->

            {{ message | filterA('arg1', 'arg2') }}

        </div>

        <script>

            // 在过滤器中 第一个参数 对应的是  管道符前面的数据   n  此时对应 message

            // 2个参数  a 对应 实参  arg1 字符串

            // 3个参数  b 对应 实参  arg2 字符串

            Vue.filter('filterA',function(n,a,b){

                if(n<10){

                    return n+a;

                }else{

                    return n+b;

                }

            });

             

            new Vue({

                el:"#box",

                data:{

                    message: "哈哈哈"

                }

            })

     

        </script>

  • 生命周期
    • 事物从出生到死亡的过程

    • Vue实例从创建 到销毁的过程 ,这些过程中会伴随着一些函数的自调用。我们称这些函数为钩子函数

    常用的 钩子函数
  • [td]

    beforeCreate

    在实例初始化之后,数据观测和事件配置之前被调用 此时data 和 methods 以及页面的DOM结构都没有初始化   什么都做不了

    created在实例创建完成后被立即调用此时data 和 methods已经可以使用  但是页面还没有渲染出来
    beforeMount在挂载开始之前被调用   此时页面上还看不到真实数据 只是一个模板页面而已
    mountedel被新创建的vm.$el替换,并挂载到实例上去之后调用该钩子。  数据已经真实渲染到页面上  在这个钩子函数里面我们可以使用一些第三方的插件
    beforeUpdate数据更新时调用,发生在虚拟DOM打补丁之前。   页面上数据还是旧的
    updated由于数据更改导致的虚拟DOM重新渲染和打补丁,在这之后会调用该钩子。 页面上数据已经替换成最新的
    beforeDestroy实例销毁之前调用
    destroyed实例销毁后调用
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值