每日技术总结:Toast组件,eslint,white-space,animate,$emit
1.一个优雅的提示是网站必不可少的。
2.ESLint使用总结
(1)在.eslintrc.js里关闭某条规则, '规则名': 'off'或0
举例:
rules: {
'generator-star-spacing': 'off','no-restricted-syntax': 'off',
'indent': 0,
'new-cap': 0
}
(2)// eslint-disable-next-line 对下一行禁用,举例代码:
// eslint-disable-next-line
var curType = type ? type : opt.defaultType
(3)// eslint-disable-line 对这一行禁用,举例代码:
toastVM = new toastTpl() // eslint-disable-line
(4)eslint常见规则,请参考: ESLint常见命令(规则表)
3.white-space,word-spacing,letter-spacing,word-break这些都是什么鬼?
参见博客:word-spacing、word-break、letter-spacing和white-space
4.CSS动画库,Animate.css
官方地址:https://daneden.github.io/animate.css/
(1)安装: npm install animate.css --save 或 yarn add animate.css
(2)引入: vue项目,src/main.js 代码如下:
import animate from 'animate.css'
(3)使用:在需要动画的vue文件,比如detail.vue
示例代码:
<transition enter-active-class="animated fadeIn" leave-active-class="animated fadeOut" :duration="200">
<div class="mask" v-show="cartModalShow"></div>
</transition>
注意:
- animated类名必须加
- 第二个类名参考官方文档里面的动画名,如bounceIn,fadeOut,slideOutUp……
- <transition>里面的元素必须是单独的,没有兄弟元素的。并且是有v-show,v-if,等显示和隐藏相关的指令的。。
5.$emit()
需求情景描述:我在详情页(父组件)点‘加入购物车’按钮,显示购物车信息模态框(子组件),在模态框里点‘继续购物’关闭该模态框,模态框的显示和隐藏是父组件的一个参数cartModalShow控制的。
也就是说,点击事件发生在子组件,需要控制父组件里的某个参数。怎么办吧?
代码示例:
这是子组件:
<template>
<div class="cart-modal">
<div class="msg">加入购物车成功!</div>
<div class="btns">
<a href="javascript:;" class="b-r" @click="toCart">进入购物车</a>
<a href="javascript:;" @click="closeModal">继续购物</a>
</div>
</div>
</template>
子组件js部分:
methods: {
toCart () {
this.$router.push({
path: 'cart'
})
},
closeModal () {
this.$emit('close')
}
}
this.$emit('close') 该方法向父组件传递了'close'事件
点‘继续购物’这个按钮时,需要关闭模态框。但是控制模态框显示的属性在父组件里。
父组件代码如下:
<transition enter-active-class="animated fadeIn" leave-active-class="animated fadeOut" :duration="200">
<cart-modal v-show="cartModalShow" @close="closeCartModal"></cart-modal>
</transition>
v-show="cartModalShow" 控制着该模态框的显示和隐藏
@close="closeCartModal" 父组件使用close事件来触发closeCartModal方法关闭模态框
js代码:
methods: {
closeModal () {
this.cartModalShow = false
}
}
这么写出来就发现其实用法也挺简单的,之前没有总结和整理,以为很难。
6.cubic-bezier是什么鬼?
参考文章:实用的 CSS — 贝塞尔曲线(cubic-bezier)
(1)animation-timing-function, transition-timing-function
(2)cubic-bezier 三次贝塞尔,为animation生成速度曲线的函数,cubic-bezier(<x1>, <y2>, <x2>, <y2>)
今日总结:
2019年开始,每个工作日都会写一篇博客记录用到的或学到的技术,并没有那么难,写博客的目的纯粹是为自己做个记录,同时也是整理,当你需要把一件事情写出来时,你不得不十分清楚。以前也接触过不少的技术知识,基本上用过就丢一边了,下次再遇到时,又要重新找制作方法。
希望这是一个好的开始,坚持下去。我可能和某些人比差很远,但是每天都比自己更进步。
每日技术总结:Toast组件,eslint,white-space,animate,$emit的更多相关文章
- 使用Angular CDK实现一个Service弹出Toast组件
在Angular中,官方团队在开发Material组件库的同时,顺手做了一套Component dev kit,也就是在Angular世界中大名鼎鼎的CDK,这套工具包提供了非常多的前端开发的通用功能 ...
- 提示框的优化之自定义Toast组件之(二)Toast组件的业务逻辑实现
在java下org.socrates.mydiary.activity下LoginActivity下自定义一个方法showCustomerToast() public class LoginAct ...
- dom4j解析xml报错:Nested exception: org.xml.sax.SAXParseException: White space is required between the processing instruction target and data.
采用dom4j方式解析string类型的xml xml: String string="<?xmlversion=\"1.0\" encoding=\ ...
- 微信小程序把玩(二十四)toast组件
原文:微信小程序把玩(二十四)toast组件 toast消息提示框,可用在提示一些信息,比如清楚缓存给用户一个友好的提示!或操作一些请求不想让用户有什么操作,toast也可以做到因为toast显示时其 ...
- 百度小程序自定义通用toast组件
百度小程序Toast组件 author: @TiffanysBear 百度小程序自定义通用toast组件 BdToast百度小程序自定义通用组件-github地址 需求 手百小程序的toast仅支持在 ...
- toast组件小结
简介:toast是"吐司"的意思,它属于android杂项组件,是一个简单的消息提示框,类似于javascript中的alert. 作用 显示文本 显示图片 显示图文 3.常用方法 ...
- 提示框的优化之自定义Toast组件之(三)Toast组件优化
开发步骤: 在toast_customer.xml文件中添加一个图片组件对象显示提示图片 <?xml version="1.0" encoding="utf-8&q ...
- 提示框的优化之自定义Toast组件之(一)Toast组件的布局实现
开发步骤: 在res下layout下创建一个Toast的布局资源文件toast_customer.xml 在最外层布局组件中为该布局添加android:id属性 //toast_custo ...
- 【Web技术】314- 前端组件设计原则
点击上方"前端自习课"关注,学习起来~ 译者:@没有好名字了译文:https://github.com/lightningminers/article/issues/36,http ...
随机推荐
- js---10作用域链
<html> <head> <title>scope basic</title> </head> <body> <scri ...
- HTML 页面内容禁止选中
写一个小笔记,怎么禁止HTML页面不被选中,复制. CSS: *{ moz-user-select: -moz-none; -moz-user-select: none; -o-user-select ...
- 今日SGU 5.4
SGU 127 题意:给你n个数字,和m,k,问你有多少个数字的m次幂可以被k整除 收获:快速幂 #include<bits/stdc++.h> #define de(x) cout< ...
- 【hoj】2160 bin packing 二分、贪心
这个题是在二分的题单上的,可是依据二分法写出来的会在oj上超时.依据题目以下给出的提示能够发现能通过贪心法每次都找最能满足的情况去填充每个包,这样就能保证使用的包的数量是最少的 二分法解法: #inc ...
- 自己定义控件的onMeasure方法具体解释
在我们自己定义控件的时候可能你会用到onMeasure方法,以下就具体的给大家介绍一下这种方法: @Override protected void onMeasure(int widthMeasure ...
- [NowCoder]牛客网NOIP赛前集训营-提高组(第六场)题解
A.最长路 题意:给定有向图,每条边有个字符\([0,10^9]\),求每个点最长路字典序最小的方案.\(N,M\le 10^6\) 建反图跑拓扑排序,显然入过队的点都有最长路,考虑如何判断字典序大小 ...
- JS前端监控机制的建立
JS前端监控机制: 1.采用try...catch...,和window.onerror的形式. 2.最终形成错误日志文件,并发送邮件和短信的形式进行报警. 3.如果是跨域请求,在script标签上要 ...
- NOIP2015运输计划(二分答案)
题目描述 公元2044年,人类进入了宇宙纪元. L国有n个星球,还有n-1条双向航道,每条航道建立在两个星球之间,这n-1条航道连通了L国的所有星球. 小P掌管一家物流公司,该公司有很多个运输计划,每 ...
- 洛谷 P1104 生日
P1104 生日 题目描述 cjf君想调查学校OI组每个同学的生日,并按照从大到小的顺序排序.但cjf君最近作业很多,没有时间,所以请你帮她排序. 输入输出格式 输入格式: 有2行, 第1行为OI组总 ...
- manjaro安装virtualbox教程
安装前需要知道 你需要知道你当前的内核版本 uname -r,比如输出了4.14.20-2-MANJARO那么你的内核版本为414 安装VirtualBox sudo pacman -S virtua ...