最近看到了一个眼镜在线试戴小项目使用纯js手写的,本人刚学习vue.js没多久,便试试用vue做做看了,还没完善。

其中包括初始图片加载,使用keywords查找,父子组件之间传递信息,子组件之间传递信息

1. 使用keywords查找

1.1 给每个li添加初始data

smallImg: [
  {
    keywords: "椭圆脸",
    src: "images/model_1.jpg",
    addClass: false
  },
  {
    keywords: "圆形脸",
    src: "images/model_2.jpg",
    addClass: false
  },

  ...

]

 1.2 添加方法

// 搜索脸型
addCurrent: function (index){// li样式添加this.faceType[index].isTrue=true;this.faceType[this.oldIndex].isTrue=false;this.oldIndex=index;// 搜索脸型var type=this.faceType[index].type;this.smallImg.forEach(function (val,index){// 先都不加classval.addClass=false;// 若关键字不等于脸型则添加classif(val.keywords!=type){val.addClass=true;}});// 点击全部,则所有的都不添加classif(index==0){this.smallImg.forEach(function (val,index){// 先都不加classval.addClass=false;});}
}

2. 子组件向父组件发送数据

  2.1 点击任意眼镜触发showGlass()事件

<script type="text/template" id="galsslist">
    <div class="galsslist"><ul class="clearfix"><li v-for="(val,index) in glass" @click="showGlass(index)" v-if="val.show"><img :src="val.src" alt=""><h4>{{ val.title }}</h4><p>{{ val.text }}</p></li></ul></div>
</script>

  2.2 子组件发射togg()事件到父组件,并传递点击的index值

showGlass: function (index){this.$emit("togg",index);
},

  2.3 父组件自定义事件

<!-- 自定义事件,子组件向父组件发送数据 -->
<galsslist @togg="showBig"></galsslist>

  2.4 执行showBig()事件,佩戴选择的眼镜

showBig: function (index){this.bigGlassImg="images/glass_"+(index+1)+".png";this.showbigGlassImg=true;
}

3. 子组件之间传递信息

3.1 先在index的data中定义  bus: new Vue(),

3.2 点击搜索在子组件触发search事件,发射事件 sear(), 并传递sendMsg信息

// 向另一个组件传递信息
search: function (){var sendMsg=this.toggArr[0].msg;this.$root.bus.$emit("sear",sendMsg);
}

 3.3 执行事件sear(),并修改this.searchKey,并触发searchKeywords()事件

// 接收另一组件传递的信息
created: function (){var self=this;this.$root.bus.$on("sear",function (val){self.searchKey=val;self.searchKeywords();})
},
beforeDestory: function (){this.$root.bus.$off("sear");
}

 3.4 显示与之匹配的眼镜

searchKeywords: function (){this.glass.forEach(function (val,index){// 先全部显示val.show=true;var key=val.title.split("_")[0];// key不相等,则隐藏if(key!=this.searchKey){val.show=false;}},this);// 为全部则全部显示if(this.searchKey=="全部"){this.glass.forEach(function (val,index){// 全部显示val.show=true;});}
}

4. github地址 (https://github.com/hsiangleev/proj-eyeglass.git)

转载于:https://www.cnblogs.com/hsianglee/p/7613241.html

vue练手小项目--眼镜在线试戴相关推荐

  1. springboot+vue练手小项目[前台搭建+后台编写](非常详细)

    [ springboot+vue练手小项目 ] 技术栈: springboot+vue3+element-plus +Mybaties-plus+hutool +mysql8 项目介绍 :最近刚学了s ...

  2. ssm练手小项目_20 个 JavaScript+Html+CSS 练手的小项目

    前言: 最近在 GitHub 上发现了一个 vanillawebprojects[1] 开源仓库,里面收集了 20 个 JavaScript+Html+CSS的练手项目,没有使用任何框架,可以让你从基 ...

  3. c语言模拟器怎么打程序,C语言初学者练手小项目——万花模拟器

    原标题:C语言初学者练手小项目--万花模拟器 还记得小时候玩的万花尺么?好好玩,各种不同的点距能画出各种各样形状图形. C语言程序万花尺模拟 函数功能:每隔5秒随机生成万花图形 并自动保存作图参数以及 ...

  4. 台式小风扇(HTML+CSS+JS练手小项目)

    台式小风扇(HTML+CSS+JS练手小项目) 功能介绍 外观展示 HTML代码 CSS代码 JS代码 总结 功能介绍 前段时间看到这样的风扇特效,感觉还挺好玩,就自己也写一个练练手. 风扇有四个档位 ...

  5. 爬虫练手小项目:豆瓣高分图书TOP100

    爬虫练手小项目:豆瓣高分图书TOP100 import requests import re from requests.exceptions import RequestException impo ...

  6. 数据结构练手小项目(AVL树、哈希表、循环链表、MySQL数据库)

    文章目录 前言 正文(无删减) 我的想法(删减修改版) 数据导入与数据存储 功能实现 数据结构 用户结构 SIM卡结构 AVL树数据结构 哈希表结构 数据表 用户表 SIM卡表 时间安排 前言 本月主 ...

  7. html+css+js之20个练手小项目(一)

    html+css+js之20个练手小项目(一)--Hangman 前言 一.HTML 二.CSS 三.JS 前言 前端新手练习,记录不迷失. 主要练习html和CSS布局以及JS. 来源github, ...

  8. 练手小项目,爬取3DM图片

    博客原文:https://weweweha.com 1. 概述 ​ 爬取3DM指定网页的游戏壁纸,并且通过多线程来加速爬取图片的速度. 2.使用库 ​ request库用来1解析指定网页,re库用来搜 ...

  9. Golang练手小项目系列

    Golang练手小项目系列 本系列整理了10个工作量和难度适中的Golang小项目,适合已经掌握Go语法的工程师进一步熟练语法和常用库的用法. golang练手小项目系列(1)-位向量 golang练 ...

最新文章

  1. mysql数据库基本介绍及常见使用
  2. 第三课.python编程基础(二)
  3. ML-1 逻辑回归和梯度下降
  4. 【Flutter】Flutter 混合开发 ( Flutter 与 Native 通信 | 完整代码示例 )
  5. 【Python】青少年蓝桥杯_每日一题_10.19_回文数和个数
  6. 1810: Huffuman树(vector模拟)
  7. Liunx 重定向,管道符(转)
  8. Memcached 使用 及.NET客户端调用
  9. ORACLE Dataguard安装
  10. 计算机管理磁盘分区,一分钟搞定电脑磁盘分区,再也不求人!
  11. warning: backslash and newline separated by space
  12. 冰点还原精灵如何关闭?
  13. 视频教程-PO设计模式(精讲)-软件测试
  14. unity 彩带粒子_超级技术贴:Unity粒子遇上着色器,引爆视觉特效
  15. python中pd series_Python 数据处理(三)——pd.Series
  16. .ipynb文件怎么打开_Mac应用程序无法打开提示不明开发者或文件损坏怎么对待呢?
  17. 【JSON数据】中国各省份省会城市经纬度 JSON
  18. 云计算 第七章 云安全(3)概述 云计算面临的安全问题 云安全问题的深层原因 云安全关键技术 云计算信息安全的国内外标准化
  19. 【题海算法】趣味算命
  20. 胡适最著名演讲:天下没有白费的努力!

热门文章

  1. Springboot快递管理系统1k61h计算机毕业设计-课程设计-期末作业-毕设程序代做
  2. 运维工程师主要做什么_网络工程师和网络运维工程师到底有什么不同?
  3. Android:将鼠标右键点击事件设置为返回功能
  4. 计算机进去bios方式,电脑的BIOS在哪?各电脑进入BIOS的方法
  5. Samsung/三星I9128 Galaxy Grand root教程_方法
  6. mysql signal_[MySQL]MySQL的signal sqlstate
  7. 面试时,如何回答你还有什么想要了解的?
  8. Activity毛玻璃背景效果
  9. “外卖式”售后服务体验来袭 沃丰科技ServiceGo让售后服务更智能
  10. vs修改程序图标、任务栏图标