Vueフィルタ使用

4944 ワード

1、フィルター
1.1フィルタ科は、二重カッコ補間とv-bind式の2つの場所で使用されます.フィルタはjs式の末尾に追加され、パイプシンボルで示されます.
//      
{{ message | capitalize }}
//  v-bind  
" rawId | formatId">div>

1.2

1.2.1

//    1:        
//    2:           
filters: {
  capitalize: function (value) {
    if (!value) return ''
    value = value.toString()
    return value.charAt(0).toUpperCase() + value.slice(1)
  }
}

1.2.2 Vueインスタンスを する にグローバルフィルタを する
//    1:     
//    2:      
Vue.filter('capitalize', function (value) {
  if (!value) return ''
  value = value.toString()
  return value.charAt(0).toUpperCase() + value.slice(1)
})
new Vue({
  // ...
})

フィルタをグローバルフィルタとして
//    
Vue.filter('my-filter', function (value) {
//        
})
// getter,         
var myFilter = Vue.filter('my-filter')

1.2.3フィルタ
//  message                filterA  ,      filterA                filterB   
{{ message | filterA | filterB }}

1.2.4 のパラメータを するフィルタ
//  filterA                ,   message、arg1、arg2          
{{ message | filterA(arg1, arg2) }}

1.3フィルタを し、ファイルに する
1.3.1フィルタを フォルダに き く
let dateServer = value => {
  return value.replace( /(\d{4})(\d{2})(\d{2})/g , '$1-$2-$3' )
}
export { dateServer }

1.3.2コンポーネントjsにフィルタを する
import * as custom from './common/filters/custom'
//       ,       key   value                
Object.keys(custom).forEach(key => {
  Vue.filter(key, custom[key])
})

1.3.3 Vueアセンブリでのフィルタの
<template>
  <section class="content">
    <p>{{ time | dateServer }}p> 
  section>
template>
<script>
  export default {
    data () {
      return {
        time: 20160101
      }
    }
  }
script>