这段代码咋优化

发布于 2022-09-13 00:01:39 字数 368 浏览 23 评论 0

<template slot-scope="scope">
          <state :type="getStateObject(scope.row.state).type" :text="getStateObject(scope.row.state).value"></state>
          </template>
const getStateObject = (state) => {
      // debugger
      return STATE.filter((item) => +item.key === +state)[0];
    };

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

把人绕傻吧 2022-09-20 00:01:39

不知道你要优化什么,希望能写清楚点,不要让我们猜,如果是想优化写法,我想到一更优雅的写法:

<state v-slot="{ row: { state }}" v-bind="getStateObject(state)" />
const getStateObject = (state) => {
  // debugger
  const obj = STATE.find(item => +item.key === +state)
  return obj ? { type: obj.type, text: obj.value} : {}
}
Oo萌小芽oO 2022-09-20 00:01:39

这还能怎么优化啊,我也想知道

兰花执着 2022-09-20 00:01:39

我猜想博主的优化意思是getStateObject这个方法,调用了两遍,想只调用一遍吧。

我有个另外的方式,但我也不知道算不算优化。

<template slot-scope="scope">
    <template v-for="(item,index) in getStateObject(scope.row.state)" :key="item">
         <state :type="item.type" :text="item.value"></state>
    </template>
</template>

相当于getStateObject调用了一遍。在html中定义了个临时的变量item

const getStateObject = (state) => {
    // debugger
    return STATE.filter((item) => +item.key === +state);  //不用 [0],直接返回数组
};
一百个冬季 2022-09-20 00:01:39

你可以完全可以props一个对象过去

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文