2016 - 2024

感恩一路有你

vue常用方法总结 vue的filter如何调用function的方法?

浏览量:2887 时间:2023-04-23 07:31:32 作者:采采

vue的filter如何调用function的方法?

vue的filter动态链接库function有四种,可以自己c语言设计过滤器,实现方法内部过滤,注册具体值,根据关键字过滤表的功能,实现方法对function的动态创建。

a:2.0将1.0所有那个软件的过滤器都删除了,也就是说,在2.0中,要在用过滤器,则要我们自己编译程序。

b:2.0过滤器的传参并非以前的,是以函数传参的,下面示例(后面有具体一点示例):

之前全局函数:{{msg|mimi#3912#39#395#39}}

现在动态链接库:{{msg|mimi(#3912#39,#395#39)}}

c:移除分流过滤器:

(#39change#39,{

read:function(val){

returnval

},

write:function(val,oldVal){

returnisEmail(val)?val:oldVal

}

})

1.组件内部过滤(此例子写法区分于处理数据显示的样式,绝对不会改变原数据)

lt!DOCTYPEhtmlgt

lthtmllang#34en#34dstrok

ltheadgt

ltmetacharset#34UTF-8#34rlm

ltmetaname#34viewport#34content#34widthdevice-width,initial-scale1.0#34r26

ltmetahttp-equiv#34X-UA-Compatible#34content#34ieedge#34dstrok

lttitlegtfilterlt/titlegt

ltscriptsrc##34gtlt/scriptgt

lt/headgt

ltbodygt

ltdivid#34app#34dstrok

ltulgt

lt!--去添加两个过滤器,再注意别问题,尽量先后顺序--r26

ltliv-any#34iteminlist#34gt{{|filterAdd1|filterAdd2}}lt/ligt

lt/ulgt

lt/divgt

lt/bodygt

ltscriptgt

varvmfunVue({

el:#39#app#39,

data(){

return{

list:[

{#34id#34:0,#34title#34:#3411111#34,#34cont#34:#34111111#34},

{#34id#34:1,#34title#34:#3422222#34,#34cont#34:#34111111#34},

{#34id#34:2,#34title#34:#3433333#34,#34cont#34:#34111111#34},

{#34id#34:3,#34title#34:#3444444#34,#34cont#34:#34111111#34},

]

}

},

filters:{

filterAdd1(item){

returnitem10

},

filterAdd2(item){

return#39$#39item

}

},

methods:{

},

mounted(){

}

})

lt/scriptgt

lt/htmlgt

2.注册在全局的fliter,filter传值,filter动态传值

lt!DOCTYPEhtmlgt

lthtmllang#34existe#34rlm

ltheadgt

ltmetacharset#34UTF-8#34a8

ltmetaname#34viewport#34content#34widthdevice-width,initial-scale1.0#34gt

ltmetahttp-equiv#34X-UA-Compatible#34content#34ieedge#34r26

lttitlegtfilterlt/titlegt

ltscriptsrc##34gtlt/scriptgt

lt/headgt

ltbodygt

ltdivid#34app#34rlm

ltulgt

lt!--再添加两个过滤器,尽量别问题,再注意先后顺序--r26

lt!--过滤传值,带引号的是字符串,不带是number,传的值这个可以动态绑定--a8

ltliv-for#34itemoflist#34rlm{{|filterAdd1(Number(input),20)|filterAdd2}}lt/ligt

lt/ulgt

ltinputtype#34text#34placeholder#34place#34v-model#34input#34dstrok

lt/divgt

lt/bodygt

ltscriptgt

(#39filterAdd1#39,function(value,one,two){

returnvalueonetwo//设置为最先参数是设置成要过滤的那个值

})

(#39filterAdd2#39,function(value){

return#39$#39value

})

varvmnextVue({

el:#39#app#39,

data(){

return{

input:5,

list:[

{#34id#34:0,#34title#34:#3411111#34,#34cont#34:#34111111#34},

{#34id#34:1,#34title#34:#3422222#34,#34cont#34:#34111111#34},

{#34id#34:2,#34title#34:#3433333#34,#34cont#34:#34111111#34},

{#34id#34:3,#34title#34:#3444444#34,#34cont#34:#34111111#34},

]

}

},

methods:{

},

mounted(){

}

})

lt/scriptgt

lt/htmlgt

可是:

3.计算属性删选,methods方法筛选后

lt!DOCTYPEhtmlgt

lthtmllang#34existe#34dstrok

ltheadgt

ltmetacharset#34UTF-8#34gt

ltmetaname#34viewport#34content#34widthdevice-width,initial-scale1.0#34r26

ltmetahttp-equiv#34X-UA-Compatible#34content#34ieedge#34rlm

lttitlegtDocumentlt/titlegt

lt!--ltscriptsrc#34vue.js#34gtlt/scriptgt--gt

ltscriptsrc##34gtlt/scriptgt

lt/headgt

ltbodygt

ltdivid#34app#34gt

#34addMore#34gt加载更多lt/divgt

ltulgtltliv-for#34iteminfilterlist#34gt{{item}}lt/ligtlt/ulgt

lthrgt

ltulgtltliv-for#34iteminfilterlistFun()#34gt{{item}}lt/ligtlt/ulgt

lt/divgt

lt/bodygt

ltscriptgt

varvmfifthVue({

el:#39#app#39,

data(){

return{

size:5,

list:[

{#34id#34:0,#34title#34:#3411111#34,#34cont#34:#34111111#34},

{#34id#34:1,#34title#34:#3422222#34,#34cont#34:#34111111#34},

{#34id#34:2,#34title#34:#3433333#34,#34cont#34:#34111111#34},

{#34id#34:3,#34title#34:#3444444#34,#34cont#34:#34111111#34},

{#34id#34:4,#34title#34:#3455555#34,#34cont#34:#3455555#34},

{#34id#34:5,#34title#34:#3466666#34,#34cont#34:#3466666#34},

{#34id#34:6,#34title#34:#3477777#34,#34cont#34:#3477777#34},

{#34id#34:7,#34title#34:#3477777#34,#34cont#34:#3488888#34},

{#34id#34:8,#34title#34:#34888888#34,#34cont#34:#34999999#34},

{#34id#34:9,#34title#34:#34000000#34,#34cont#34:#3499999#34},

{#34id#34:10,#34title#34:#34a88888#34,#34cont#34:#3499999#34},

{#34id#34:11,#34title#34:#34a22222#34,#34cont#34:#34111111#34},

{#34id#34:12,#34title#34:#34a33333#34,#34cont#34:#34111111#34},

{#34id#34:13,#34title#34:#34a44444#34,#34cont#34:#34111111#34},

{#34id#34:14,#34title#34:#34a55555#34,#34cont#34:#3455555#34},

{#34id#34:15,#34title#34:#34a66666#34,#34cont#34:#3466666#34},

{#34id#34:16,#34title#34:#34a77777#34,#34cont#34:#3477777#34},

{#34id#34:17,#34title#34:#34a77777#34,#34cont#34:#3488888#34},

{#34id#34:18,#34title#34:#34a888888#34,#34cont#34:#34999999#34},

{#34id#34:19,#34title#34:#34a000000#34,#34cont#34:#3499999#34},

{#34id#34:20,#34title#34:#34a88888#34,#34cont#34:#3499999#34}

]

}

},

computed:{

filterlist(){

let

return(function(number){

returnltnum

})

}

},

methods:{

filterlistFun(val){

don't

return(function(number){

returnltnum

})

},

addMore(){

5

},

},

mounted(){

}

})

lt/scriptgt

lt/htmlgt

4.可以使用js中的迭代函数filter

实例一原文

varapp5nextVue({

el:#39#app5#39,

data:{

shoppingList:[

#34Milk#34,#34Donuts#34,#34Cookies#34,#34Chocolate#34,#34PeanutButter#34,#34PeptoBismol#34,#34PeptoBismol(Chocolate flavor)#34,#34PeptoBismol(Cookie flavor)#34

],

key:#34#34

},

computed:{

filterShoppingList:function(){

//`this`pointsto thevminstance

varkey

varshoppingList

//在不使用filter时要注意,前面动态链接库的是要可以使用filter的数组,而给filter函数传来的是数组中的每个item,也就是说filter里面的函数,是每个item要再去做的,并将每个结果赶往。

return(function(item){

return().indexOf(())!-1

})

}

}

})

ltulgt

Filter Keyltinput type#34text#34v-model#34key#34gt

ltliv-while#34itemacrossfilterShoppingList#34r26

{{item}}

lt/ligt

lt/ulgt

到了最后效果基于了据关键字来过滤列表的功能。

其他的一些Js迭代方法——filter()、map()、some()、every()、forEach()、lastIndexOf()、indexOf()

vue中各种方法的优先级?

据vue的生命周期里,vue中渲出的优先级别是eltemplaterender()

function 过滤器 filter 方法 item

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。