vue 渲染的一些问题,v-for要求渲染多次,最后只渲染一次?

发布于 2022-09-06 00:02:12 字数 1369 浏览 10 评论 0

完整代码地址:
https://github.com/tuihou1233...

clipboard.png

html模板代码

 <div class="starBox">
    <span class="grey">
        <i class="fa fa-star" v-for="n in 5"></i>
    </span>
    <span style="color:#ff9a0d;">
        <i class="fa fa-star" v-for="n in starFun(item,0)"></i>
        <i class="fa fa-star-half" v-for="m in starFun(item,1)"></i>
    </span>
</div>

vue中相应方法代码

    methods:{               
        starFun:function(item,index){
            var num=item.rating+"";
            var a;
            if(index==0){
                if(num.indexOf(".")<0){
                    a=num;
                }
                else{
                    a=num.split(".")[0];
                }
            }
            else{
                if(num.indexOf(".")<0 ||  num.split(".")[1]<5 ){
                    a=0;
                }
                else{
                    a=1;
                }
            }
            console.log(a);
            return a;
        }
    }

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

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

发布评论

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

评论(2

北城挽邺 2022-09-13 00:02:12

最后返回的时候

因为最后返回的a是string,要把字符串转化成number类型 就可以了;

return a*1;
清眉祭 2022-09-13 00:02:12

这种应该使用过滤器去处理
以下截于官网:
computed 属性中使用 js 内置方法 .filter method

<p v-for="user in filteredUsers">{{ user.name }}</p>
computed: {
  filteredUsers: function () {
    var self = this
    return self.users.filter(function (user) {
      return user.name.indexOf(self.searchQuery) !== -1
    })
  }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文