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)

大家都在看

  • win10安装redis

    下载地址:https://github.com/MicrosoftArchive/redis/releases 这个太慢了 https://github.com/ServiceSt…

    Linux 2023年5月28日
    0127
  • zookeeper 配置文件详情

    目录结构 目录名作用 bin 存放系统脚本 conf 存放配置文件 contrib zk附加功能支持 dist-maven maven仓库文件 docs zk文档 lib 依赖的第…

    Linux 2023年6月8日
    071
  • maven安装及导入本地jar包

    一、maven的安装方法 1.去maven官网下载适合的版本 下载地址: 官方下载地址 2.下载后解压到任意目录 3.配置系统环境变量 M2_HOME ,值为maven解压后的目录…

    Linux 2023年6月14日
    0134
  • python 正则匹配

    正则匹配 现公司要开发一个业务管理系统,要求注册环节的密码需要提示用户其安全等级,密码按如下规则进行计分,并根据不同的得分为密码进行安全等级划分;此外,密码的组成可以由字母,数字,…

    Linux 2023年6月8日
    0104
  • WEB自动化-11-数据驱动

    11 数据驱动 数据驱动是测试框架中一个非常好的功能,使用数据驱动,可以在不增加代码量的情况下生成不同的测试策略。下面我们来看看在Cypress中的数据驱动使用方法。 11.1 数…

    Linux 2023年6月7日
    0116
  • 支付宝沙箱

    支付宝支付 ## 支付宝的沙箱环境 – [密钥生成文档](https://opendocs.alipay.com/open/291/105971): 公钥(给别人,方便其他人验证某…

    Linux 2023年6月8日
    0105
  • 【MQTT】iniparser库的安装和使用

    iniparser库 * – iniparser库介绍 – 下载库 – iniparser中的API – dictionary中的一…

    Linux 2023年6月13日
    0105
  • Linux机器在命令行操作时开启/关闭代理

    命令行操作时,如果需要连接通过代理才能访问的地址,可以通过配置当前shell的配置文件来手动开启/关闭代理 注意:代理只对当前用户当前shell生效,切换用户或者重新连接需要重新开…

    Linux 2023年6月6日
    0104
  • “XZ”格式文件解压

    1、下载xz 官网:https://tukaani.org/xz/ 例:wget https://nchc.dl.sourceforge.net/project/lzmautils…

    Linux 2023年6月6日
    0111
  • Macbook pro 2015 安装Windows后再安装Linux

    我尝试了Debian,Ubuntu,Kali Linux都不能启动Windows。每次装完,磁盘格式都会自动变成MBR。结果今天尝试了安装Fedora 36,居然轻轻松松就成功了。…

    Linux 2023年6月6日
    0111
  • 深入理解java泛型

    什么是Java泛型 泛型的使用 泛型类 泛型接口 泛型方法 泛型的底层实现机制 ArrayList源码解析 什么是泛型擦除 泛型的边界 ?:无界通配符 extends 上边界通配符…

    Linux 2023年6月6日
    0133
  • centos安装torch==1.4.0与相关细节

    对于某些直接安装torch==1.4.0报错的情况(没错,就是我遇到了) 在网上查找了,大概的解决方法是先安装一个低版本的torch和torchvision, torchvisio…

    Linux 2023年6月7日
    0106
  • Linux IP 命令略解

    help 为该命令的帮助信息。 实例ip link show # 显示网络接口信息 ip link set eth0 up # 开启网卡 ip link set eth0 down…

    Linux 2023年6月14日
    087
  • 数据库的灾备

    数据是企业重要的生产资料,关键数据的丢失可能会给企业致命一击,因为数据是计算机系统存在的原因和基础。数据往往是不可再生的,一旦发生数据丢失,企业就会陷入困境:客户资料、技术文件、财…

    Linux 2023年6月6日
    0113
  • 操作系统实现-简单热身

    博客网址:www.shicoder.top微信:18223081347欢迎加群聊天 :452380935 这次对上次的boot.asm进行代码讲解,也可以对汇编的相关理论进行补充 …

    Linux 2023年6月13日
    097
  • LRU原理和Redis实现——一个今日头条的面试题(转载)

    很久前参加过今日头条的面试,遇到一个题,目前半部分是如何实现 LRU,后半部分是 Redis 中如何实现 LRU。 我的第一反应是操作系统课程里学过,应该是内存不够的场景下,淘汰旧…

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