Vue手动封装实现一个五星评价得效果

我是歌谣 放弃很难 但是坚持一定很酷 微信公众号关注小歌谣 一起学习前后端知识

今天要说得是实现一个vue中实现五星评价得效果

简单来说 就是封装组件把

具体需要我们了解组件间得相互传值

数据绑定等知识

先用脚手架起个项目先

脚手架启动

在这里插入图片描述

安装依赖

包括

npm install sass-loader@7.1.0 --savenpm install style-loadernpm install node-sass

安装好对应得版本之后
我们看一下整个文件得目录结构

目录结构

在这里插入图片描述
目录结构看完之后

代码部分

app.vue

<template><div id="app"><Stars:num="starNum":size="size"@getStarNum="getStarNum"/></div>
</template><script>
import Stars from "@/components/Stars";export default {components: { Stars },name: 'App',data () {return {size: 30,starNum: 3}},methods: {getStarNum (number) {this.starNum = number;console.log(this.starNum);}}
}
</script>

index.js

import Stars from "@/components/Stars";const JSUI = {};const componentPool = [Stars
];JSUI.install = function (Vue) {componentPool.forEach(component => {Vue.component(component.name, component);});
}export default JSUI;

main.js

import Vue from 'vue'
import App from './App.vue'
import JSUI from "@/index";Vue.config.productionTip = false
Vue.use(JSUI);new Vue({render: h => h(App),
}).$mount('#app')

Star.vue

<template><div class="ui-stars"><spanv-for="number in 5":key="number":class="['iconfont icon-star',number <= starNum ? 'active' : '']":style="{ fontSize: size + 'px' }"@click="setStarNum(number)"></span></div>
</template><script>
export default {name: 'Stars',props: {num: {type: Number,default: 0},size: {type: Number,default: 16}},data () {return {starNum: this.num}},methods: {setStarNum (number) {this.starNum = number;this.$emit('getStarNum', this.starNum);}}
}
</script><style lang="scss" scoped>@font-face {font-family: "iconfont";src: url('//at.alicdn.com/t/font_2416240_16adww0qe8ri.eot?t=1615530777645'); /* IE9 */src: url('//at.alicdn.com/t/font_2416240_16adww0qe8ri.eot?t=1615530777645#iefix') format('embedded-opentype'), /* IE6-IE8 */url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAAKoAAsAAAAABlAAAAJdAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCCcApcdAE2AiQDCAsGAAQgBYRtBy4bmAXIHpIkRQpIUhQlOA0GABF8vx+/Pe/dbyJRtX3HtJFo5lVsumVLhGIZQiORLNNs/9c0BRRqc3lv9qCtrBqRKuqD/APOZfT8hCa9aWBjKuTmVjehm0JxkBeH0yZQIPOBcpl7UBdQFwdSQHtjm6yEMm4Yu8AlnCdQqpOmsrF/OoG2xJoWiPOBZ0E755AkFi4WCmvWJvEUChRn96qfgSfh9+OXQbTJFOSsrL1zey5sfmdH1e6u7jrlI8BJQJsLkGMcSMSh2sCOmmC4mtJAXS/YV3rw3eq/rxJ7lQv211mp5aAdMu6J6bJuNZzBbXXVAgyOehTRcmM2u7/ffGjy8Kzh8OT21dDR6eOb1iPzmxczn7r+9ud/Dz71qFHfjffF17vRP73L5m+Xbe3astek5oNf3q2wfpa/rS2oIHhZvvl9tmrhd3FZAl/T1kNZ0s8EivdmDP4Ks2dD0tmWMksqs7Y103K2slKl+A9bav2OlTTcQiQUaxhhKtKRQq5YPzJhx6FAmQkoVGwZSo052FymDquJVIJR1wBCtSfIVHoPuWoLZML+QIFG/1CoOmpQ6kjU7VlmMILuOpMl5KJ9hYGTpcpRSzdKH5F3FlucZYf4GXEZuLFv9IrhA0qJ51hQnnsDEYWKswT3wWUUxxnmnIXkiOGL5EPTVHVvMpwsga51jFgEcSHbFRRwZFLKby+6pc+PEM+ZmIVb6mqUM4SVgt5Rn6HXA3kgSHvV3cs1pXOeASEUpLBMAu2DUSQWy6C8flSIOITBH+HLDZl2M9VXYKwvSr5uB5SypFnY+bl0QSwGAAA=') format('woff2'),url('//at.alicdn.com/t/font_2416240_16adww0qe8ri.woff?t=1615530777645') format('woff'),url('//at.alicdn.com/t/font_2416240_16adww0qe8ri.ttf?t=1615530777645') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */url('//at.alicdn.com/t/font_2416240_16adww0qe8ri.svg?t=1615530777645#iconfont') format('svg'); /* iOS 4.1- */}.iconfont {font-family: "iconfont" !important;font-size: 16px;font-style: normal;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;color: #999;&.icon-star:before {content: "\e842";}&.active {color: #FCC33F;}}
</style>

运行结果
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/410504.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LetCode-MSSQL查找重复的电子邮箱

sql的题目如下所示&#xff0c;查询出重复的电子邮箱 解法(1):查询出查询出Email相等 Id不相同的数据具体语句如下所示: select a.Email from Person as a,Person as b where a.Emailb.Email and a.Id!b.Id此时我们可以看到我们的语句中输出了2次结果但是预期结果只输出了1次…

鸿蒙内核是闭源吗_鸿蒙出世,中华有为!

作者&#xff1a;飞翔吧&#xff01;橙哥转载授权(文末留言&#xff0c;或添加微信&#xff1a;mzy2117)8月9日&#xff0c;超强台风“利奇马”登陆中国。当沿海各地的人们都在琢磨下班如何回家的时候&#xff0c;在广东东莞举行的华为2019年开发者大会上&#xff0c;华为正式发…

oracle 添加字段

alter table 表名 add 新增字段名(类型长度);#添加字段alter table asset_orders add remark varchar2(255);#查看describe asset_orders;转载于:https://www.cnblogs.com/zhaojingyu/p/11236747.html

儿童学文字编程python_手把手教你python数字知识

上篇文章讲述了python的数据类型。 我们先回顾一下&#xff1a;包括&#xff1a;数字&#xff0c;字符串&#xff0c;列表&#xff0c;元组&#xff0c;字典。接下来我们详细的介绍这几种类型。 今天要说的是关于数字的教程。 说到数字&#xff0c;可能你的头脑里首先会反应出&…

LetCode-MSSQL超过5名学生的课

此图关键在于去重后使用having count查询出大于5的值 select class from courses group by class having count(distinct student) > 5;

在laravel5.8中集成swoole组件----初步测试

铺垫前提是先安装swoole组件&#xff0c;我采用从pecl-----php扩展组件网下载swoole扩展包&#xff0c;然后切入到解压缩的扩展包中运行phpize命令&#xff0c; phpize是一种编译命令&#xff0c;可以在安装文件中生成configure文件&#xff0c;从而方便我们编译安装&#xff0…

python改文件名_通过python顺序修改文件名字的方法

通过python顺序修改文件名字的方法 更新时间&#xff1a;2018年07月11日 11:48:55 作者&#xff1a;longma666666 今天小编就为大家分享一篇通过python顺序修改文件名字的方法&#xff0c;具有很好的参考价值&#xff0c;希望对大家有所帮助。一起跟随小编过来看看吧 问题&…

LetCode-MSSQL从不订购的客户

解法(1)&#xff1a;思路为先查询出订购的客户再使用not in查询出不包含订购客户的其他人也就是从来不订购的客户 查询出订购的客户语句: select a.Id from Customers as a,Orders as b where b.CustomerIda.Id再使用not in 查询 不再里面的客户 select Name as Customers fr…

python loadtxt_Python 数据科学入门2:Matplotlib

第七章 从文件加载数据很多时候&#xff0c;我们想要绘制文件中的数据。 有许多类型的文件&#xff0c;以及许多方法&#xff0c;你可以使用它们从文件中提取数据来图形化。 在这里&#xff0c;我们将展示几种方法。 首先&#xff0c;我们将使用内置的csv模块加载CSV文件&#…

LetCode-MSSQL销售分析-I

此题是查询出销售额最高的人的ID 首先我们通过语句查询出最高的销售额 select top 1 sum(price) from Sales group by seller_id order by sum(price) desc然后我们通过查询总和的值和 最高销售额相等的ID即可 select seller_id from Sales group by seller_id having sum(p…

在laravel5.8中集成swoole组件----用协程实现的服务端和客户端(一)

注意&#xff0c;这种风格的服务端需要swoole4.4以上&#xff0c;这种风格的服务端需要swoole4.4以上&#xff0c;这种风格的服务端需要swoole4.4以上&#xff0c;重要的事情说三遍&#xff01;&#xff01;&#xff01; 服务端<?php //namespace Swoole; use Swoole\Corou…

Zen Coding 系列教程一:入门

Zen Coding 是一款高效用于开发HTML与CSS的编码插件&#xff0c;可以安装到很多软件中使用Zen Coding 项目&#xff1a;http://code.google.com/p/zen-coding/ DemoDemo (使用 Ctrl , 展开缩写&#xff0c;需要JavaScript支持)中文版演示下载(完全支持)Aptana (跨平台);Coda,…

LetCode-MySql删除重复的电子邮箱

解法(1)&#xff1a;思路为先查询出查询出重复的ID并且取最小值 select min(Id) Id,Email from Person group by Email或者 Select min(Id) as Id,distinct Email from Person然后删除不在ID为此里面的值 delete from Person where Id not in(select Id from ( select min(Id…

高斯混合模型聚类_GMM: Gaussian Mixed Model(高斯混合模型)

0. 简介GMM和Kmeans一样也属于聚类&#xff0c;其算法训练流程也十分相似&#xff0c;Kmeans可认为是“硬聚类”&#xff0c;GMM是“软聚类”。给定数据集X&#xff0c;Kmeans算法流程是这样的----- a 初始化&#xff1a;随机初始k个中心&#xff08;即k个点&#xff0c;记为μ…

LetCode-算法-整数反转

首先此题是要整数反转123就要翻转成321 &#xff0c;23就是32 我们首先发现其中的规律 321 3X1022X1013X100 123反转成321 就是(123%10)X102(12%10)X102(1%10)X102 得出规律后我们就可以通过此规律写出方法了 如下: public class Solution {public int Reverse(int x) {int …

怎样下载安装python_Windows系统上如何安装Python和pip

系统环境&#xff1a; Windows 7 Pyhton 2.7.12 pip-8.1.2 1、下载安装包 python2.7.12安装包下载地址&#xff1a;pip安装包下载地址&#xff1a;2、安装Python a、双击下载后的安装包&#xff0c;一直点下一步即可。 b、配置Python的环境变量&#xff0c;操作如下&#xff1a…

ast.literal_eval(转)

eval函数在Python中做数据类型的转换还是很有用的。它的作用就是把数据还原成它本身或者是能够转化成的数据类型。那么eval和ast.literal_val()的区别是什么呢&#xff1f;本文将大家介绍关于Python中函数eval和ast.literal_eval区别的相关资料&#xff0c;需要的朋友可以参考下…

高德地图-2D地图下区域遮掩(只显示固定区域里的内容)

最近遇到一个新的需求需用用到高德地图 公司需要只显示固定区域范围的地图,其余地方的地图都用透明遮罩覆盖 完成后如下图所示: 地图体验网址 刚开始的时候研究了半天高德地图的的JS API中只有一个区域遮掩符合条件 但是区域遮掩这个代码有一个很重要的前提是必须使用3D地图&…

C# 淘宝商品微信返利助手开发-(八)微信号对接

系列教程一目录&#xff1a;返利助手原理 系列教程二目录&#xff1a;返利助手开放文档以及帐号申请地址 系列教程三目录&#xff1a;返利助手开发&#xff08;1&#xff09;API介绍 系列教程四目录&#xff1a;返利助手开发&#xff08;2&#xff09;淘宝分享的内容如何只取…

C# 制作不规则窗体的两种解决方案

我的广告单元&#xff0c;有空点一下哦&#xff0c;谢谢&#xff01; 冒着被拍砖的危险&#xff0c;投放到首页。C#制作不规则窗体应该又是一个老生常谈的问题了&#xff0c;可能很多老鸟会带BS的眼神&#xff0c;那么请老鸟们视该文章如浮云吧。 制作不规则窗体&#xff0c;本…