vue自定义指令,过滤器等

1、vue 去除前后的空格

<el-input v-model.trim="data"></el-input>

https://www.cnblogs.com/mmzuo-798/p/9301109.html

2、vue自定义指令

  • 全局
Vue.directive('bgcolor', function (el, binding) {
      el.style.backgroundColor = binding.value
})
  • 局部
directives: {
    bgcolor: (el, binding) => {
        el.style.backgroundColor = binding.value  
    }
}

https://www.cnblogs.com/dhui/p/13268040.html

3、vue过滤器,filters

  • 局部过滤器(与methods,watch平级)
filters: {
    componentFilter(value) {
      return value + '!!!'
    },
  },
用法:{{ 'a' | componentFilter }} // a!!!

https://www.jianshu.com/p/ad21df1914c5

  • 全局过滤器(main.js)

方法1

Vue.filter('aaa', function (value) {
    return value + '!!!'
})

https://www.jianshu.com/p/ad21df1914c5

方法2

  • filters/index.js
const isNullOrEmpty = function(val) {
    if (val == null || val == "" || typeof(val) == undefined) {
        return true;
    } else {
        return false;
    }
}
export {
    isNullOrEmpty
}
  • main.js
import * as filters from '../filters/index'
Object.keys(filters).forEach(key => {
    Vue.filter(key, filters[key])
})
  • 组件里
{{date | isNullOrEmpty}}是否为空

https://www.cnblogs.com/yanwuming/p/10603058.html

4、指令了解

https://jspang.com/detailed?id=21#toc330

  • v-pre
    在模板中跳过vue的编译,直接输出原始值
<div v-pre>{{message}}</div> // 直接显示{{message}}
  • v-cloak 在vue渲染完指定的整个DOM后才进行显示
[v-cloak] {
  display: none;
}
<div v-cloak>
  {{ message }}
</div>
  • v-once
    如果显示的信息后续不需要再修改,使用v-once
    使用了v-once之后,在控制台上修改app.message无法更改
    v-once用于一次性数据,固定数据,可以提高性能
<div v-once>{{info}}</div

5、组件全局注册

  • main.js
import Vue from 'vue'
import pageHead from './components/page-head.vue'
Vue.component('page-head',pageHead)
  • 组件内使用
<template>
    <div>
         <page-head></page-head>
    </div>
</template>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容