实现此例您可以学到:
- vue-cli的基本应用
- 父组件如何向子组件传递值
- 单文件组件如何引入scss
- v-on和v-for的基础应用
- 源码下载
一、搭建vue开发环境
1)更换镜像到cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org
2)安装vue-cli
cnpm install -g vue-cli
3)初始化vue项目
命令模式进入项目所在的目录,如d:\test\,输入vue init 项目名称即可。如果你想引入vue2.0框架,必须把nodejs、webpack和npm升级到最新版本。
4)node-sass和sass-loader实现scss的编译
用cnpm安装node-sass和sass-loader,用于编译scss相关内容。
5)通过npm install 安装开发和运行依赖组件
进入刚创建好的目录,执行cnpm install安装所有的开发和运行依赖项
6)通过npm run dev支持调试版本
在安装成功后,直接运行npm run dev即可看到demo的运行界面。
注意:
1.按照上述步骤搭建最终可以创建好vue项目,但也遇到几个坑
2.安装的nodejs和webpack、npm不是最新版本
二、实现Tag组件
学习一个新框架,首先是看文档,最重要还是实践。写一个hello world过于简单,要玩就玩个大的。我们就来实现一个Tag(标签)组件领悟一下vue的强大。
组件需求
- 将用户输入的标签信息动态的添加到标签列表区域。
- 同名和空标签不能输入。
- 外部可以控制标签显示区域的宽度。
实现思路
- 一个输入框,用于接受标签内容的输入;
- 一个列表,用于展示所有输入的标签信息;
- 提供一个可设置属性,用于设置标签列表的宽度;
具体实现
1. 模板内容代码
<template> <div class="tag-wrap"> <span>标签:</span> <input type="text" id="tag" name="tag" v-model="val" /> <button id="apply" v-on:click="add" >添加</button> <ul class="tag-cont clear" v-bind:style="{width: width}"> <li v-for="item in cont">{{item}}</li> </ul> </div> </template>
1.1 template只是模板语言的标记,解析后不会生成到页面,所以内容需要用一个div包裹住;
1.2 template中可以访问Js代码中data()和Methods、props等相关属性;
1.3 props用于父组件向子组件传递值,此值可以动态传递;
1.4 v-on绑定事件,v-for用于迭代集合。
2. Js代码
<script> export default{ name: 'tag', data () { return { cont: [], val: '' } }, methods: { add: function () { let _val = this.val if (_val.length === 0 || this.cont.indexOf(_val) > -1) { return } this.cont.push(this.val) } }, props: { width: { type: String, default: 'auto' } } } </script>
2.1 使用v-model="val"实现输入自动更新val这个属性;
2.2 add方法获取val这个属性的值,然后判断是否为空,以及是否在已添加标签数据中存储,如果不存在则添加到标签数组中。
2.3 props的width类型和默认值,限制类型为String,默认值为auto。
3. Scss代码
<style lang='scss' scoped > @keyframes item-show{ from{ opacity: 0; } } .clear{ zoom: 1; } .clear:after{ content: ''; display: block; width: 0px; height: 0px; overflow: hidden; clear: both; } $back-color:#fed; span{ background: $back-color; } .tag-cont{ list-style: none; margin: 10px auto; padding: 5px; border: 1px solid lightblue; } .tag-cont > li{ float: left; padding: 5px; border:1px solid gray; border-radius: 10px; animation: item-show 1s; margin: 10px; } </style>
3.1 用lang来标记style标签内的Css实现
4. 在App.vue中引入Tag组件,并组件到Vue的Components(组件库)中,然后在template中以标签的形式引用即可,代码如下:
<template> <div id="app"> <tag width="300px"></tag> </div> </template> <script> import Tag from './components/Tag' export default { name: 'app', components: { Tag } } </script>
5. 效果图
学习总结
Tag组件其实是一个很小的组件,业务价值很低,主要用于Vue新手入门。主要实现Vue常用的父组件改变子组件的值,view改变model,model的变化反应到view上,事件的绑定等功能。
还需要继承深入了解,以及vuex管理vue组件的应用,还有组件之间的通信。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
- 群星.1995-爱情,勿语【可登】【WAV+CUE】
- 大自然音乐系列《花漾物语》[WAV/CUE/分轨][473MB]
- 大自然音乐系列《轻风细雨》[WAV/CUE/分轨][568.3MB]
- 大自然音乐系列《听见向日葵的微笑》[WAV/CUE/分轨][538.5MB]
- 魔兽世界地心之战戒律牧用什么饰品 地心之战戒律牧饰品推荐
- 魔兽世界地心之战戒律牧用什么合剂食物 地心之战戒律牧合剂食物推荐
- 仙境传说新启航职业排行榜大全 仙境传说最强职业是哪个
- 群星《网络新歌曲速报》3CD[DTS-WAV分轨]
- 群星《男人必听》一张男人开车时必听的绝世好歌[WAV]
- 群星《再见新歌》2CD【DTS-WAV分轨】
- 黎瑞恩.1992-雨季不再来【宝丽金】【WAV+CUE】
- 曹雅雯.2018-小说【美乐蒂】【FLAC分轨】
- 温拿乐队.2007-温拿33好时光演唱会2CD(2024环球红馆40复刻系列)【环球】【WAV+CUE】
- 魔兽世界地心之战戒律牧用什么附魔宝石 地心之战戒律牧附魔宝石推荐
- 仙境传说新启航公测兑换码汇总 仙境传说最新兑换码礼包大全