你不知道的Vue开发的七大实用技巧!!!

本文介绍了如何通过添加:key属性解决Vue组件复用问题,利用$on简化事件监听,以及合理使用watch和props验证。深入探讨了组件间生命周期挂钩的应用和初始化观察者的技巧。

1、在多条路线中使用一个组件

这是开发人员遇到的一种非常常见的情况,即多个路由解析到同一个 Vue 组件。

然而,问题在于 Vue 优化了你的应用程序并重用现有组件而不是创建新组件。因此,如果你尝试在使用相同组件的路由之间切换,则不会有任何改变。

//路由器.js

const routes = [

{

path: “/a”,

component: MyComponent

},

path: “/b”,

];

要解决此问题,你需要在 元素上添加 :key 属性——这可能在你的 App.vue 文件中。这将帮助你路由器识别页面何时不同。

现在,你的应用将不会重用现有组件,并且会在你切换路由时更新你的内容。

2、$on(‘hook:’) 可以帮助简化你的代码

删除事件侦听器是 Javascript 一种常见的实践,因为它有助于避免内存泄漏并防止事件冲突。

在Vue中添加/删除组件事件监听器时,我们分别使用了mounted和beforeDestroy的生命周期钩子。这是一个典型的设置。

mounted () {

window.addEventListener(‘resize’, this.resizeHandler);

},

beforeDestroy () {

window.removeEventListener(‘resize’, this.resizeHandler);

}

在典型的模式中,我们必须在组件选项对象中单独声明这些钩子。这样做的一个问题是,对于较大的组件,这些选项可能相隔数百行。

但是,查看 Vue 文档,我们看到有一个实例方法 $on 用于侦听实例事件。

此外,VueJS 生命周期钩子会在触发时发出自定义事件。事件名称是“hook:”hook+本身的名称(例如,hook:创建)

结合这两个技巧,我们可以编写用于在挂载方法内部添加和删除的代码。代码看起来像这样。

this.$on(“hook:beforeDestroy”, () => {

window.removeEventListener(‘resize’, this.resizeHandler);

})

这意味着我们不必定义另一个生命周期hook。这样可以大大提高代码可读性的东西。

3、$on 也可以监听子组件的生命周期hook

生命周期hook发出自定义事件,这一事实意味着父组件可以侦听其子组件的生命周期hook。

它将使用正常模式来侦听事件 (@event),并且可以像其他自定义事件一样进行处理。

<child-comp @hook:mounted=“someFunction” />

4、使用immediate:true在初始化时触发观察者

Vue Watchers是添加高级功能(例如 API 调用)的好方法,该功能在观察到的值发生变化时运行。

但是,默认情况下,观察者不会在初始化试运行。根据你的功能,这可能意味着某些数据未完全初始化。

watch: {

title: (newTitle, oldTitle) => {

console.log("Title changed from " + oldTitle + " to " + newTitle)

}

如果你需要你的观察者在实例初始化后立即运行,你所要做的就是将你的观察者转换成一个具有处理程序 (newVal, oldVal)函数和一个 immediate: true 属性的对象。

其代码可能如下所示。

title: {

immediate: true,

handler(newTitle, oldTitle) {

console.log("Title changed from " + oldTitle + " to " + newTitle)

}

5、你应该总是验证你的props

验证 props 是 Vue 中的基本实践之一。它甚至在VueJS 官方样式指南中被列为“优先级 A:基本”样式规则。

为什么重要?

它基本上可以从现在的你中拯救未来的你。在设计大型项目时,很容易忘记你用于prop的确切格式、类型和其他约定。

如果你在一个更大的开发团队中,你的同事不会读心术,所以让他们清楚如何使用你的组件!

因此,让每个人都不必费力地跟踪你的组件以确定道具的格式,并且只需编写prop验证即可。

在设计大型项目时,很容易忘记你用于prop的确切格式、类型和其他约定。

这是 VueJS 样式指南中的 prop 验证示例。

props: {

status: {

type: String,

required: true,

validator: function (value) {

return [

‘syncing’,

‘synced’,

‘version-conflict’,

‘error’

].indexOf(value) !== -1

}

6、将所有 props 传递给子组件很容易

说到 props,了解如何将所有props 从父组件传递到其子组件之一很有用。

有大量的用例,但是当你的项目具有非常分层的结构时,它特别方便。

这很简单——你只需要记住你的实例属性!

7、你必须了解所有组件选项

如果你真的想成为一名 VueJS 开发专家,你需要了解所有不同的组件选项、何时使用它们以及为什么使用它们。

你会的,别担心。

这只是需要时间,但是在花费越来越多的时间在 VueJS 中工作并致力于学习顶级技巧、最佳实践和新方法之后,你很快就会成为超级开发人员。

结论

这些绝不是 VueJS 技巧的完整列表。这些只是我个人认为最有用的一些技巧。其中一些技巧是我在 Vue 中开发了很长时间才发现的,所以我想与大家分享这些知识。

今天的爱创乐育小编分享就到这里了,想学习前端,了解前端更多知识,欢迎大家关注点赞、私信我!!!
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值