Javascript 作为Vue.js中父对象属性的绑定方法
我有时会遇到这样的情况:能够将方法绑定为对象属性而不是直接的Vue方法会更好。例如,而不是:Javascript 作为Vue.js中父对象属性的绑定方法,javascript,vue.js,Javascript,Vue.js,我有时会遇到这样的情况:能够将方法绑定为对象属性而不是直接的Vue方法会更好。例如,而不是: 能够做以下事情会很好: …并仅从Vue类中公开格式化程序,而不是为我要绑定的每个案例编写一个瘦包装器方法。这会产生很多感觉不必要的样板文件 有可能这样做吗?如果是这样的话,类代码会是什么样子?在数据中放置一个带有方法的对象对我来说是错误的。我的答案信息有限。所以我要做很多假设 太长,读不下去了 您可以让该方法返回一个对象并在模板中执行它,或者使用一个返回对象的计算方法。两者都将提供您想要的功能
能够做以下事情会很好:
…并仅从Vue类中公开格式化程序,而不是为我要绑定的每个案例编写一个瘦包装器方法。这会产生很多感觉不必要的样板文件
有可能这样做吗?如果是这样的话,类代码会是什么样子?在
数据中放置一个带有方法的对象对我来说是错误的。我的答案信息有限。所以我要做很多假设
太长,读不下去了
您可以让该方法返回一个对象并在模板中执行它,或者使用一个返回对象的计算方法。两者都将提供您想要的功能
示例(道具是函数)
这可能看起来像(以下是我的假设):
导出默认值{
/*其他选择*/
方法:{
/*其他方法*/
格式化程序(){
常量格式=(值)=>新的Intl.NumberFormat('nl-nl',{style:'currency',currency:'EUR'})。格式(值);
常量解析器=(值)=>parseFloat(值);
返回{
货币:{
格式,
解析器,
},
};
}
},
}
使用上述方法,您确实可以在模板中执行以下操作:
您的propsformatter
和parser
将是两个函数,在返回的对象中定义
少用样板
为了避免更多的样板文件,您还可以执行以下操作:
导出默认值{
/*其他选择*/
方法:{
/*其他方法*/
格式化程序(){
const formatter=(value)=>new Intl.NumberFormat('nl-nl',{style:'currency',currency:'EUR'})。format(value);//使用与道具'formatter'相同的名称
常量解析器=(值)=>parseFloat(值);
返回{
货币:{
格式化程序,//使用与道具“格式化程序”相同的名称
解析器,
},
};
}
},
}
在模板中:
这将把formatter.currency.formatter
绑定到您的formatter
prop,它还将formatter.currency.parser
绑定到您的parser
prop
值位于父组件中
此外,如果MyInput
组件中的道具需要是值(而不是函数),并且需要解析/格式化的值是父级中数据选项中的值:
导出默认值{
/*其他选择*/
数据(){
返回{
/*其他数据*/
myNumberValue:'9001'//是的,超过9000
}
},
方法:{
/*其他方法*/
格式化程序(){
const value=this.myNumberValue;
const formatter=new Intl.NumberFormat('nl-nl',{style:'currency',currency:'EUR',})。格式(值);
const parser=parseFloat(值);
返回{
货币:{
格式化程序,
解析器,
},
};
},
},
};
这回答了你的问题吗?我觉得不错。作为任何其他参考。它抛出了什么?不确定您的用例和/或动机是什么,但您可能想研究mixin。@Tim-您将如何使用mixin来解决这个问题?是的,这非常有用,谢谢!