vue过滤器和生命周期——day02

vue之过滤器和生命周期——day02

过滤器:

概念:Vue.js 允许你自定义过滤器, 可被用作一些常见的文本格式化。过滤器可以用在两个地方: mustache 插值和 v-bind 表达式。过滤器应该被添加在 JavaScript 表达式的尾部,由”管道”符指示;

过滤器语法

//&#x8FC7;&#x6EE4;&#x5668;&#x4E2D;&#x7684; function &#xFF0C;&#x7B2C;&#x4E00;&#x4E2A;&#x53C2;&#x6570;&#xFF0C;&#x5DF2;&#x7ECF;&#x88AB;&#x89C4;&#x5B9A;&#x6B7B;&#x4E86;&#xFF0C;&#x6C38;&#x8FDC;&#x90FD;&#x662F; &#x8FC7;&#x6EE4;&#x5668; &#x7BA1;&#x9053;&#x7B26;&#x524D;&#x9762; &#x4F20;&#x9012;&#x8FC7;&#x6765;&#x7684;&#x6570;&#x636E;<br>Vue.filter('&#x8FC7;&#x6EE4;&#x5668;&#x7684;&#x540D;&#x79F0;', function(data){<br><br>})
全局过滤器:
 <div id="app"><br>     <!--  | 管道符,msgFomt是过滤器名称 --><br>     <p>{{ msg | msgFomt}}</p><br></div><br><br><script><br>    //定义一个全局的filter,名字叫msgFomt,传入msg参数<br>    Vue.filter('msgFomt', function (msg) {<br>        // 字符串的replace 方法,第一个参数,除了可写一个字符串之外,还可以定义正则表达式<br>        return msg.replace(/我/g, "你")<br>    })<br>    <br>    var vm = new Vue({<br>        el: '#app',<br>        data: {<br>            msg: "我是一名学生,我爱学习,我爱祖国",<br>            time: new Date<br>        },<br>        methods: {<br>        }<br>        })<br></script>
私有过滤器:
<script><br>var vm2 = new Vue({<br>    el: '#app',<br>    data: {<br>        dt: new Date()<br>    },<br>    methods: {},<br>    filters: { <br>        // 定义私有过滤器    过滤器有两个 条件  【过滤器名称 和 处理函数】<br>        // 过滤器调用的时候,采用的是就近原则,如果私有过滤器和全局过滤器名称一致了,这时候 优先调用私有过滤器<br>        dateFormat: function (dateStr, pattern = '') {<br>            // 根据给定的时间字符串,得到特定的时间<br>            var dt = new Date(dateStr)<br><br>            //   yyyy-mm-dd<br>            var y = dt.getFullYear()<br>            var m = (dt.getMonth() + 1).toString().padStart(2, '0')<br>            var d = dt.getDate().toString().padStart(2, '0')<br><br>            if (pattern.toLowerCase() === 'yyyy-mm-dd') {<br>                return ${y}-${m}-${d}<br>            } else {<br>                var hh = dt.getHours().toString().padStart(2, '0')<br>                var mm = dt.getMinutes().toString().padStart(2, '0')<br>                var ss = dt.getSeconds().toString().padStart(2, '0')<br><br>                return ${y}-${m}-${d} ${hh}:${mm}:${ss}<br>            }<br>        }<br>    }<br>})<br></script>

注意:当有局部和全局两个名称相同的过滤器时候,会以就近原则进行调用,即:局部过滤器优先于全局过滤器被调用!

vue生命周期:

  • 什么是生命周期:从Vue实例创建、运行、到销毁期间,总是伴随着各种各样的事件,这些事件,统称为生命周期!
  • 生命周期钩子:就是生命周期事件的别名而已;
  • 主要的生命周期函数分类:

  • 创建期间的生命周期函数:

  • beforeCreate :实例刚在内存中被创建出来,此时,还没有初始化好 data 和 methods 属性
  • created :实例已经在内存中创建OK,此时 data 和 methods 已经创建OK,此时还没有开始 编译模板
  • beforeMount :此时已经完成了模板的编译,但是还没有挂载到页面中
  • mounted :此时,已经将编译好的模板,挂载到了页面指定的容器中显示
  • 运行期间的生命周期函数:

  • beforeUpdate :状态更新之前执行此函数, 此时 data 中的状态值是最新的,但是界面上显示的 数据还是旧的,因为此时还没有开始重新渲染DOM节点

  • updated :实例更新完毕之后调用此函数,此时 data 中的状态值 和 界面上显示的数据,都已经完成了更新,界面已经被重新渲染好了!

  • 销毁期间的生命周期函数:

  • beforeDestroy :实例销毁之前调用。在这一步,实例仍然完全可用。

  • destroyed :Vue 实例销毁后调用。调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。
  <script><br>    // 创建 Vue 实例,得到 ViewModel<br>    var vm = new Vue({<br>      el: '#app',<br>      data: {<br>        msg: 'ok'<br>      },<br>      methods: {<br>        show() {<br>          console.log('执行了show方法')<br>        }<br>      },<br>      beforeCreate() {<br>        // 这是我们遇到的第一个生命周期函数,表示实例完全被创建出来之前,会执行它<br>        // console.log(this.msg)<br>        // this.show()<br>        // 注意: 在 beforeCreate 生命周期函数执行的时候,data 和 methods 中的 数据都还没有没初始化<br>      },<br>        <br>      created() { <br>        // 这是遇到的第二个生命周期函数<br>        // console.log(this.msg)<br>        // this.show()<br>        // 在 created 中,data 和 methods 都已经被初始化好了!<br>        // 如果要调用 methods 中的方法,或者操作 data 中的数据,最早,只能在 created 中操作<br>      },<br>        <br>      beforeMount() {<br>        // 这是遇到的第3个生命周期函数,表示 模板已经在内存中编辑完成了,但是尚未把 模板渲染到 页面中<br>        // console.log(document.getElementById('h3').innerText)<br>        // 在 beforeMount 执行的时候,页面中的元素,还没有被真正替换过来,只是之前写的一些模板字符串<br>      },<br>        <br>      mounted() { <br>        // 这是遇到的第4个生命周期函数,表示,内存中的模板,已经真实的挂载到了页面中,用户已经可以看到渲染好的页面了<br>        // console.log(document.getElementById('h3').innerText)<br>        // 注意: mounted 是 实例创建期间的最后一个生命周期函数,当执行完 mounted 就表示,实例已经被完全创建好了,此时,如果没有其它操作的话,这个实例,就静静的 躺在我们的内存中,一动不动<br>      },<br><br><br>      // 接下来的是运行中的两个事件<br>      beforeUpdate() { <br>          // 这时候,表示 我们的界面还没有被更新【数据被更新了吗?  数据肯定被更新了】<br>        /* console.log('界面上元素的内容:' + document.getElementById('h3').innerText)<br>        console.log('data 中的 msg 数据是:' + this.msg) */<br>        // 得出结论: 当执行 beforeUpdate 的时候,页面中的显示的数据,还是旧的,此时 data 数据是最新的,页面尚未和 最新的数据保持同步<br>      },<br>      updated() {<br>        console.log('界面上元素的内容:' + document.getElementById('h3').innerText)<br>        console.log('data 中的 msg 数据是:' + this.msg)<br>        // updated 事件执行的时候,页面和 data 数据已经保持同步了,都是最新的<br>      }<br>    });<br>  </script>

图来自:https://cn.vuejs.org/v2/guide/instance.html#%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F%E5%9B%BE%E7%A4%BA

vue过滤器和生命周期——day02

Original: https://www.cnblogs.com/zdh052286/p/12485514.html
Author: 清酒一杯
Title: vue过滤器和生命周期——day02

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/581595/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • cron 表达式

    cron 表达式 1.简介:一个cron表达式最少有5个空格来分割时间元素,总共有7个元素,分别如下: ① 秒(0-59) ② 分钟(0-59) ③ 小时(0-23) ④ 天(月的…

    Linux 2023年6月7日
    071
  • Linux C/C++ 获取进程号、线程号和设置线程名

    在Linux开发过程中,设计多线程开发时可以将进程和线程的 id 打印出来,方便开发调试和后期查问题使用,同时也包括设置线程名。 2.1 进程ID #include <uni…

    Linux 2023年6月7日
    0134
  • CentOS 7.6 安装 MySQL-5.7.31(RPM方式安装)

    准备工作: 注:5.7.31版本安装步骤及初始化和之前版本有较大区别 CentOS 7.6 系统: 带GUI的服务器 默认安装 MySQL 5.7.31 安装包: 1.RPM安装包…

    Linux 2023年6月8日
    089
  • 闪存和SSD存储之间有什么区别?

    PC硬件术语经常被互换使用,其缩写被削减,或者对同一组件有多个词。以DRAM/RAM/memory为例。这三个词都是指同一个PC组件,它被安装在CPU插座旁边的瘦小插槽中&#821…

    Linux 2023年6月7日
    0173
  • 用powershell脚本,检测cpu100%,并触发sqlserver主备切换。

    我为园子设计的脚本大致如下:1慢检测:任务计划每分钟运行。发现cpu高于95%后,触发2。2快检测:每隔5秒钟运行,发现cpu高于95%,连续6次后,触发3。3报警n次。超出5分钟…

    Linux 2023年6月14日
    0113
  • Redis采用不同内存分配器碎片率对比

    我们知道Redis并没有自己实现内存池,没有在标准的系统内存分配器上再加上自己的东西。所以系统内存分配器的性能及碎片率会对Redis造成一些性能上的影响。在Redis的 zmall…

    Linux 2023年5月28日
    094
  • Consider defining a bean of type `xxx` in your configuration问题解决

    在使用SpringBoot装配mybatis时出现了异常 *************************** APPLICATION FAILED TO START *****…

    Linux 2023年6月13日
    0118
  • [20220909]bbed关于删除记录恢复的问题.txt

    [20220909]bbed关于删除记录恢复的问题.txt –//快下班被别人问的关于删除记录使用bbed恢复的问题,我开始以为很快讲解完,删除记录oracle仅仅打上…

    Linux 2023年6月13日
    083
  • Netty源码解读(二)-服务端源码讲解

    简单Echo案例 代码是netty的源码,我添加了自己理解的中文注释。 了解了Netty的线程模型和组件之后,我们先看看如何写一个简单的Echo案例,后续的源码讲解都基于此案例。以…

    Linux 2023年6月7日
    0132
  • Debian10 命令行启动

    打开 default grub 配置 $ sudo vi /etc/default/grub 修改以下3处内容 保存修改 更新grub配置 $ sudo update-grub 设…

    Linux 2023年5月27日
    0105
  • 数据结构-表

    顺序表 #ifndef SEQLIST_H #define SEQLIST_H typedef int DataType; struct Node { int MaxNum; in…

    Linux 2023年6月7日
    076
  • mysql基本操作

    mysql常用命令: 1查询数据库 show database; 2切换库 use test; 3查看库里的表 show tables; 4查看表里的字段 desc tb_name…

    Linux 2023年6月6日
    0104
  • Docker镜像管理基础

    Docker镜像管理基础 1、镜像的概念 镜像可以理解为应用程序的集装箱,而docker用来装卸集装箱。 docker镜像含有启动容器所需要的文件系统及其内容,因此,其用于创建并启…

    Linux 2023年6月7日
    0116
  • 020 Linux 20个宝藏命令案例

    1 JDK 相关的查找命令 (1)确认是否安装 JDK (2)查找 java 命令目录的位置 (3)查找 java 命令的位置的软链地址 (4)通过软链地址查找 JDK 的安装目录…

    Linux 2023年5月27日
    090
  • 【原创】Linux虚拟化KVM-Qemu分析(三)之KVM源码(1)

    背景 Read the fucking source code! –By 鲁迅 A picture is worth a thousand words. –…

    Linux 2023年6月8日
    097
  • jenkins集成gitlab 授权登录

    配置方法:1.gitlab 新建个人application 如上图, Name, 名称随便填 Redirect URI: http://xxxxxx/securityRealm/f…

    Linux 2023年6月14日
    0168
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球