Vueフィルター---kalrry

1.はじめに

役割:フォーマットデータ

1.文法

//全局过滤器
Vue.filter('过滤器名称',function(value){
    
    
    逻辑代码
    return 结果
})
//局部过滤器
new Vue({
    
    
 ....
 filters:{
    
    
   过滤器名称:function(value){
    
    },
   ...
   过滤器n
 	}
})

2.使用する

<div>{
    
    {
    
    msg | 过滤器}}</div>
<div>{
    
    {
    
    msg | 过滤器1 | 过滤器2}}</div>     //过滤器1返回的结果继续被过滤器2处理 
<div v-bind:属性="msg | 过滤器" ></div>  //对属性进行处理,不常用

3.例

<div id="app">
	<input type="text" v-model="msg"/>
	<!-- 方式一 -->
	<div>{
    
    {
    
    msg | upperFirst}}</div>
	<!-- 方式二 -->
	<div>{
    
    {
    
    msg | upperFirst|upperLast}}</div>
	<!-- 方式三 -->
	<div v-bind:id="msg|upperFirst"></div>
</div>
<script type="text/javascript">
new Vue({
    
    
	el: '#app',
	data: {
    
    
		msg: ''
	},
	filters: {
    
    
		upperFirst: function(value) {
    
    
			return value.charAt(0).toUpperCase() + value.slice(1)
		},
		upperLast: function(value) {
    
    
			return value.slice(0, value.length - 1) + value.charAt(value.length - 1).toUpperCase()
		}
	}

})
</script>

2.公式文書

Vue.jsを使用すると、いくつかの一般的なテキストフォーマットに使用できるフィルターをカスタマイズできます。フィルタは、二重中括弧の補間とv-bind式の2つの場所で使用できます(後者は2.1.0以降でサポートされています)。「パイプ」記号で示されるJavaScript式の最後にフィルターを追加する必要があります。

<!-- 在双花括号中 -->
{
    
    {
    
     message | capitalize }}

<!--`v-bind`-->
<div v-bind:id="rawId | formatId"></div>

コンポーネントのオプションでローカルフィルターを定義できます。

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

または、Vueインスタンスを作成する前に、フィルターをグローバルに定義します。

Vue.filter('capitalize', function (value) {
    
    
  if (!value) return ''
  value = value.toString()
  return value.charAt(0).toUpperCase() + value.slice(1)
})

new Vue({
    
    
  // ...
})

グローバルフィルターとローカルフィルターの名前が同じ場合は、ローカルフィルターが使用されます。
次の例では、大文字のフィルターを使用しています。
画像の説明を追加してください
フィルター関数は、常に式の値(前の一連の操作の結果)を最初の引数として受け取ります。上記の例では、capitalizefilter関数は最初のパラメーターとしてmessageの値を受け取ります。

フィルタは連結できます。

{
    
    {
    
     message | filterA | filterB }}

この例では、filterAは単一のパラメーターを受け取るフィルター関数として定義されており、式メッセージの値はパラメーターとして関数に渡されます。次に、フィルター関数filterBを呼び出し続けます。これも単一のパラメーターを受け取るように定義されており、filterAの結果をfilterBに渡します。

フィルタはJavaScript関数であるため、パラメータを受け取ることができます。

{
    
    {
    
     message | filterA('arg1', arg2) }}

ここで、filterAは、3つのパラメーターを受け入れるフィルター関数として定義されています。メッセージの値が最初のパラメーターとして使用され、通常の文字列'arg1'が2番目のパラメーターとして使用され、式arg2の値が3番目のパラメーターとして使用されます。ここで、filterAは、3つのパラメーターを受け入れるフィルター関数として定義されています。メッセージの値が最初のパラメーターとして使用され、通常の文字列'arg1'が2番目のパラメーターとして使用され、式arg2の値が3番目のパラメーターとして使用されます。

おすすめ

転載: blog.csdn.net/weixin_45406712/article/details/124310411