Vue 测试版本:Vue.js v2.5.13

官网给了过滤器的两种使用方式:

1、你可以在一个组件的选项中定义本地的过滤器:

结合实例,我给两个代码:

  1. <div id="app">
  2. <input
  3. type="text"
  4. v-model="id"
  5. placeholder="please enter your id"
  6. />
  7. <p>your id is: {{ id| formatId }}</p>
  8. </div>
  1. window.onload = function() {
  2. new Vue({
  3. el: '#app',
  4. data: {
  5. id: ''
  6. },
  7. filters: {
  8. formatId(v) {
  9. return v.length < 10 && v.length > 0 ? v.padStart(10, '0') : v;
  10. }
  11. },
  12. });
  13. };

2、在创建 Vue 实例之前全局定义过滤器:

方式 2 换一种 js 就行,html 不用变:

  1. window.onload = function() {
  2. Vue.filter('formatId', function(v) {
  3. return v.length < 10 && v.length > 0 ? v.padStart(10, '0') : v;
  4. });
  5.  
  6. new Vue({
  7. el: '#app',
  8. data: {
  9. id: ''
  10. },
  11. });
  12. };

比较好理解,但是我觉得可以完善下,因为上面都没有用模板;

如果用了模板,第一种就失效了,只有第二种可行:

  1. <div id="app">
  2. <my-ele :id="id"></my-ele>
  3. </div>
  1. window.onload = function() {
  2. Vue.component('my-ele', {
  3. template: `
  4. <div>
  5. <input type="text" v-model="id"/>
  6. <p>you id: {{id | formatId}}</p>
  7. </div>
  8. `,
  9. props: ['id']
  10. });
  11.  
  12. Vue.filter('formatId', function(v) {
  13. return v.length < 10 && v.length > 0 ? v.padStart(10, '0') : v;
  14. });
  1. new Vue({
  2. el: '#app',
  3. data: {
  4. id: ''
  5. }
  6. });
  7. };

虽然 开发环境下 会报错,但不影响功能,

如果把 js 换成第一种,就会失败:

  1. window.onload = function() {
  2. Vue.component('my-ele', {
  3. template: `
  4. <div>
  5. <input type="text" v-model="id"/>
  6. <p>you id: {{id | formatId}}</p>
  7. </div>
  8. `,
  9. props: ['id']
  10. });
  11.  
  12. new Vue({
  13. el: '#app',
  14. data: {
  15. id: ''
  16. },
  17. filters: {
  18. formatId(v) {
  19. return v.length < 10 && v.length > 0 ? v.padStart(10, '0') : v;
  20. }
  21. }
  22. });
  23. };

功能失效;

如果采用 render() 函数,就更复杂了些,详情戳 Vue-双向绑定:从 html 到 模板 到 渲染函数

参考文档:

https://cn.vuejs.org/v2/guide/filters.html

Vue基础-在模板中使用过滤器的更多相关文章

  1. Vue基础项目模板

    https://github.com/wanglong/vue-element-admin.git 优化 Vue CLI 3 构建的前端项目模板(1)- 基础项目模板介绍 一站式开源运维平台,分享给大 ...

  2. Django 模板中 变量 过滤器的使用方法

    一.变量       1.变量的形式是:{{variable}}, 当模板引擎碰到变量的时候,引擎使用变量的值代替变量.    2.使用dot(.)能够访问变量的属性    3.当模板引擎碰到dot的 ...

  3. Django 模板中 变量 过滤器 标签 的使用方法

    一.变量       1.变量的形式是:{{variable}}, 当模板引擎碰到变量的时候,引擎使用变量的值代替变量.    2.使用dot(.)能够访问变量的属性    3.当模板引擎碰到dot的 ...

  4. flask的jinja2模板中过过滤器的相关小内容

    jinja2模板中有自带的过滤器,有需要直接拿来使用.也可以自己定义过滤器 在过滤器中,有一些常见得操作及关键字.有对字符串的操作,还有对大小写转换的操作.还有对list的操作 过滤器的语法 {# 过 ...

  5. vue(基础二)_组件,过滤器,具名插槽

    一.前言 主要包括:  1.组件(全局组件和局部组件)                     2.父组件和子组件之间的通信(单层)                     3.插槽和具名插槽     ...

  6. 测试开发之Django——No7.Django模板中的过滤器

    1.add 将参数添加到值. 例如: {{ value|add:"2" }} 如果value是4,那么输出将是6. 此过滤器将首先尝试将两个值强制转换为整数.如果失败,它将尝试将值 ...

  7. Flask的jinja2模板中自定义过滤器的使用

    大部分的模板引擎都是支持过滤器功能的,jinja2也不例外,它提供了丰富的内置过滤器,但是有些时候还是没办法满足我们的需求,好在jinja2支持自定义过滤器,下面是一个简单的例子. 下面的例子完成了自 ...

  8. WPF 基础 - 在模板中找元素

    1. 在 ControlTemplate 中寻找元素 <Window.Resources> <ControlTemplate x:Key="cTmp"> & ...

  9. VUE基础实用技巧

    Vue以前听说过,有了解过一点.当时还在热衷于原生JavaScript去写一些方法的封装,不是为啥,就感觉这样很帅,后面多多少少接触了一些JQuery的用法,到现在为止,JavaScript原生封装的 ...

随机推荐

  1. mysql-connector-python 源码安装

    一.下载mysql-connector-python的源码包: 下载页面: https://dev.mysql.com/downloads/connector/python/ 我这下载的是mysql- ...

  2. python文件目录操作大全

    python只获取当前目录下的文件夹及文件名 list = os.listdir(rootdir)#列出目录下的所有文件和目录 for line in list: filepath = os.path ...

  3. php 的rabbitmq 扩展模块amqp安装

    php 的rabbitmq 扩展模块amqp安装 2017年10月08日 10:34:22 阅读数:240 使用PHP开发,要使用中间队列rabbitmq, 必须要安装PHP的扩展模块amqp, 服务 ...

  4. java访问属性

  5. Java,Mysql-根据一个给定经纬度的点,进行附近500米地点查询–合理利用算法

    Java,Mysql-根据一个给定经纬度的点,进行附近500米地点查询–合理利用算法   LBS 球面距离公式 http://wiki.myoa.info/zh-blog:20 Java,Mysql- ...

  6. C++ 匿名对象的生命周期

    //匿名对象的生命周期 #define _CRT_SECURE_NO_WARNINGS #include<iostream> using namespace std; class Poin ...

  7. 查看sdk

  8. SSH开发环境整合搭建

    1.建立动态web工程,加入必要的jar包. antlr-2.7.7.jar asm-3.3.jar asm-commons-3.3.jar asm-tree-3.3.jar c3p0-0.9.1.2 ...

  9. ubuntu 16.04安装 navicat

    原文地址:http://www.cnblogs.com/wbJson/p/5655537.html 下载地址:http://download2.navicat.com/download/navicat ...

  10. MFC获取系统当前时间

    1.使用CTime类 CString str; //获取系统时间 CTime tm; tm=CTime::GetCurrentTime(); str=tm.Format("现在时间是%Y年% ...