玖叶教程网

前端编程开发入门

前端人必备的Vue小技巧|建议收藏(vue前端页面设计)

Vue是一套响应式的 JavaScript 开发库,是当下非常流行的 JavaScript 技术开发框架之一。vue 作为目前前端三大框架之一,对于前端开发人来说是一项必备技能。相比于其他大型框架,Vue更加灵活,开发者既可以选择使用Vue来开发一个全新项目,也可以将Vue引入到一个现有的项目中。代码简洁、上手容易,使得Vue深受前端人的青睐。

所以,对于每一个前端人来说,掌握和熟练运用Vue是非常重要的。而在工作中去学习和使用一些Vue的小技巧,不仅能够帮助我们更快更好地完成工作,也能让我们的代码看起来更加专业。

那么,下面小编就为大家总结了一些前端人在工作中会常用到的Vue小技巧,建议收藏哦~

一、把 prop 限制为类型列表

当你在 prop 定义中需要使用到 validator 选项时,可以将 prop 限制为一组特定的值:

export default {

name: 'Image',

props: {

src: {

type: String,

},

style: {

type: String,

validator: s => ['square', 'rounded'].includes(s)

}

}

};

复制代码

这个 validator 函数接受一个 prop,返回 true 或 false。当你需要比布尔值允许的更多选项时,也可以使用它。按钮类型或警报类型(信息、成功、危险、警告)是一些比较常见的用途。

二、使用引号观察嵌套值

只需使用引号就可以轻松地直接查看嵌套值,这对于处理深度嵌套的对象非常有用。

watch {
'$route.query.id'() {
// ...
}
}

三、require.context()

如页面需要导入多个组件,可以直接利用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="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="./template.html"></template>
<script src="./script.js"></script>
<style scoped src="./styles.css"></style>

六、检测元素外部(或内部)的点击

有时我们需要检测点击是发生在特定元素el的_内部_还是_外部_。这个时候我们通常会使用到下面这个方法:

window.addEventListener('mousedown', e => {
// 获取被点击的元素
const clickedEl = e.target;

// `el` 是你正在检测外部点击的元素
if (el.contains(clickedEl)) {
// 单击“el”内部
} else {
// 在`el`之外点击
}
});

七、在 Vue 中循环一个范围

v-for指令允许我们遍历一个数组,但它也让我们遍历一个范围:

<template>
<ul>
<li v-for="n in 5">项目#{{ n }}</li>
</ul>
</template>

显示效果:

项目#1

项目#2

项目#3

项目#4

项目#5

当我们使用v-for范围时,它将从 1 开始并以我们指定的数字结束。

八、 覆盖子组件的样式

Scoped CSS 比较容易保持整洁,并且不会意外地将样式渗入应用程序的其他部分。但有时你需要覆盖子组件的样式,并突破该范围。Vue 有一个deep专门用于此的选择器(如果你使用的是 SCSS 之类的 CSS 预处理器,则可能需要改用/deep/)。

<style scoped>
/* 覆盖子组件的 CSS,同时保持样式范围*/
.my-component >>> .child-component {
font-size: 24px;
}
</style>

九、观察slot的变化

有时我们需要知道slot内的内容什么时候发生了变化,而 Vue 没有内置的方法来检测这一点,这种时候使用突变观察器是一种非常简洁的方法。

export default {
mounted() {
// 当事情发生变化时调用`update`
const observer = new MutationObserver(this.update);

// 观察这个组件的变化
observer.observe(this.$el, {
childList: true,
subtree: true
});
}
};

十、单作用域 slot 的简写

Scoped slot 比较有趣,但为了使用它们,你也必须使用很多template标签。为了避免使用很多template标签,我们可以使用单个作用域slot,会更加地简单直接。

<DataTable #header="tableAttributes">
<TableHeader v-bind="tableAttributes" />
</DataTable>

掌握并且熟练运用上面这十个Vue使用中的小技巧,不仅能够帮助你更快更好地完成工作,还能让你的代码看起来更加专业简洁。

最后,在我们的工作中脚踏实地是非常重要的,但是找对方法、掌握技巧也同样重要。我们在工作时不能只是一味地去想应该怎么完成工作,更应该去思考怎样既能完成工作,又能让我们的工作变得更加轻松。成功者和普通人的区别也往往体现在此。


发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言