那么 , 下面小编就为大家总结了一些前端人在工作中会常用到的Vue小技巧 , 建议收藏哦~
一、把 prop 限制为类型列表
当你在 prop 定义中需要使用到 validator 选项时 , 可以将 prop 限制为一组特定的值:
这个 validator 函数接受一个 prop , 返回 true 或 false 。 当你需要比布尔值允许的更多选项时 , 也可以使用它 。 按钮类型或警报类型(信息、成功、危险、警告)是一些比较常见的用途 。
export default {
name: 'Image'
props: {src: {
type: String
style: {
type: String
validator: s => ['square' 'rounded'
.includes(s)
;
复制代码
二、使用引号观察嵌套值
只需使用引号就可以轻松地直接查看嵌套值 , 这对于处理深度嵌套的对象非常有用 。
三、require.context()
watch {
'$route.query.id'() {
// ...
如页面需要导入多个组件 , 可以直接利用require.context写成下面这样 , 来避免原始写法中出现大量重复代码的情况 。
四、 模板标签的另一种用途
const path = require('path')
const files = require.context('@/components/home' false /\\.vue$/)
const modules = {
files.keys().forEach(key => {
const name = path.basename(key '.vue')
modules[name
= files(key).default || files(key)
)
components:modules
该template标签可以在模板内的任何地方使用 , 以更好地组织代码 。 我们可以用它来简化v-if逻辑 , 有时v-for也是 。 我们可以使用template标签对元素进行分组 , 并将他们提升v-if到template标签本身:
五、多文件单文件组件
<template>
<div class=\"card\">
<img src=https://mparticle.uc.cn/"imgPath\" />
<h3>
{{ title
</h3>
<template v-if=\"expanded\">
<h4>
{{ subheading
</h4>
<div class=\"card-content\">
<slot/>
</div>
<SocialShare/>
</template>
</div>
</template>
这是 SFC 的一个鲜为人知的功能 , 如果你需要共享样式、文档或其他任何内容 , 可以像使用常规 HTML 文件一样导入文件 , 这会很方便 , 也非常适合那些超长组件文件 。
六、检测元素外部(或内部)的点击
<!-- \"single\" 文件组件 -->
<template src=https://mparticle.uc.cn/"./template.html\"></template>
<script src=https://mparticle.uc.cn/"./script.js\"></script>
<style scoped src=https://mparticle.uc.cn/"./styles.css\"></style>
有时我们需要检测点击是发生在特定元素el的_内部_还是_外部_ 。 这个时候我们通常会使用到下面这个方法:
window.addEventListener('mousedown' e => {
- 编程|78亿人预约Mate50,网友P图“嘲讽”的背后,是对网络现状的不满
- javascript|Web前端:JS社区推荐的最佳JavaScript框架
- 本文转自:央视网央视网消息:工业和信息化部有关负责人表示|工业和信息化部:我国将持续推动装备制造业数字化转型
- 又被挂上热搜的00后 没惹你们任何人
- 多位经销商人士:河北格力售后服务平台突遭关闭属实
- 本文转自:环球网【环球网无人机综合报道 记者 赵汗青】2008年汶川地震时|“再不用冒死跳伞!”两款国产大型无人机驰援四川泸定,送去手机信号
- 有多少人,正在被前任用苹果黑科技跟踪?
- 本文转自:深圳新闻网读特客户端·深圳新闻网2022年9月5日讯(记者 李旖露)近日|28家深圳企业上榜“瞪羚榜单”,电子商务、健康科技、人工智能行业受
- 本文转自:界面新闻记者|李馨婷近日|AI画作拿了一等奖,创作者到底是人还是人工智能?
- AI可能真的比人更懂这个宇宙