vue.js - 有没有办法从数据部分内的方法部分创建函数引用
问题描述
我有一个带有列表的 Vue 组件
<v-list-item
v-for="(item, i) in items"
:key="i"
>
<v-list-item-content>
<v-list-item-title @click="item.onClick"></v-list-item-title>
</v-list-item-content>
</v-list-item>
我在methods:
部分中创建了方法
methods:{
openProjects(){
if (!this.loggedIn) {
this.$router.push('/projects');
}
},
logout(){
this.$store.dispatch('auth/logout')
if (!this.loggedIn) {
this.$router.push('/');
}
},
},
现在我想将它们与data
data: () => ({
items: [
{ onClick: openProjects },
{ onClick: logout},
],
}),
当然,Vue 上下文看methods
不到data
. 那么链接它们的方法是什么?
解决方案
转过为什么不使用带参数的方法
<v-list-item v-for="(item, i) in items" :key="i">
<v-list-item-content>
<v-list-item-title @click="handleItem(item)"></v-list-item-title>
</v-list-item-content>
</v-list-item>
methods:{
handleItem(item) {
this.openProjects(item)
this.logout()
}
openProjects(item){
// Some logic with item
},
logout(){
// Some logic
},
推荐阅读
- python - 使用 Beautiful Soup 循环多个 div 的问题
- python - 使用 Seaborn PairGrid、regplot 为不同变量绘制不同的回归函数
- c# - 如何在任何服务器或在线位置记录异常
- apache-spark - 加载主数据文件以激发生态系统
- laravel - 获取关系列时,laravel admin 中的可排序功能不起作用
- python - 2个时间序列之间的差异窗口
- c# - 运行时库错误 - C# Windows 窗体应用程序
- javascript - Angular 使用 find 方法将数据传递给后端服务
- delphi - 如何避免 tmaskedit 中的空格?
- vue.js - Vuex:具有动态键的最佳实践计算对象