当前位置: 首页 > Web前端 > vue.js

2020年12个Vue.js开发提示和技巧

时间:2023-04-01 01:31:24 vue.js

我真的很喜欢使用Vue.js,每次使用该框架时,我都喜欢深入研究它的功能和特性。通过这篇文章,我向您介绍了十个您可能不知道的很酷的提示和技巧,以帮助您成为更好的Vue开发人员。更漂亮的插槽语法随着Vue2.6的引入,引入了插槽的简写形式,可用于事件(例如,@click用于v-on:click事件)或冒号表示绑定(:src)。例如,如果你有一个表格组件,你可以像下面这样使用这个功能:"here*/...$on('hook:')可以帮助简化代码删除事件侦听器是一种常见的最佳实践,因为它有助于避免内存泄漏并防止事件碰撞。如果您想在已创建或已安装的挂钩中定义自定义事件侦听器或第三方插件,并且需要在beforeDestroy挂钩中将其删除以避免造成任何内存泄漏,这是一个很好的功能。这是一个典型的设置:mounted(){window.addEventListener('resize',this.resizeHandler);},beforeDestroy(){window.removeEventListener('resize',this.resizeHandler);}使用$on('hook:')方法,您只能使用一个生命周期方法(而不是两个)来定义/删除事件。mounted(){window.addEventListener('resize',this.resizeHandler);this.$on("hook:beforeDestroy",()=>{window.removeEventListener('resize',this.resizeHandler);})}$on也可以监听子组件的生命周期钩子生命周期钩子发出自定义事件意味着父组件可以监听其子组件的生命周期钩子。它将使用正常模式侦听事件(@event),并且可以像任何其他自定义事件一样进行处理。使用immediate:true在初始化时触发watcherVueWatchers是添加高级功能(例如API调用)的好方法,该功能在观察值发生变化时运行。默认情况下,观察者不会在初始化时运行。根据您的功能,这可能意味着某些数据未完全初始化。watch:{title:(newTitle,oldTitle)=>{console.log("Titlechangedfrom"+oldTitle+"to"+newTitle)}}如果你需要在实例初始化后立即运行,那么你所拥有的要做的是将wather转换为具有handler(newVal,oldVal)函数和immediateimmediate:true的对象。watch:{title:{immediate:true,handler(newTitle,oldTitle){console.log("Titlechangedfrom"+oldTitle+"to"+newTitle)}}}你应该始终验证你的PropValidationProps在Vue中的基本做法。你可能已经知道props可以被验证为原始类型,例如字符串、数字甚至对象。你也可以使用自定义验证器——例如,如果你想验证一个字符串列表:props:{status:{type:String,required:true,validator:function(value){return['syncing','synced','version-conflict','error'].indexOf(value)!==-1}}}动态指令参数Vue2.6最酷的特性之一是能够动态地将指令参数传递给组件。假设你有一个按钮组件,在某些情况下想要监听点击事件,在其他情况下想要监听双击事件。这是这些指令派上用场的地方:此外,这实际上也非常简洁-您可以将相同的模式应用于动态HTML属性、道具、等等组件开发人员重用同一个路由一个常见的情况是多个路由解析到同一个Vue组件。问题是,由于性能原因,Vue默认情况下不会重新渲染共享组件,如果您尝试在使用相同组件的路由之间切换,则不会有任何改变。constroutes=[{path:"/a",component:MyComponent},{path:"/b",component:MyComponent},];如果你还想重新渲染这些组件,可以通过在router-view组件中提供:key属性来实现。将所有属性传递给子组件很容易。这是一个非常酷的功能,它允许您将所有从父组件传递的props传递给子组件。如果您有另一个组件的包装器组件,这将特别方便。因此,您可以使用它一次传递所有道具,而不是一个一个地传递所有道具:而不是:如果子组件不在parentcomponent,你可以像这样将父组件的所有事件监听器传递给子组件:如果一个子组件在其父组件的根目录下,它会默认获取那些组件,所以没有必要使用这个小技巧。$createElement默认情况下,每个Vue实例都可以访问$createElement方法来创建和返回虚拟节点。例如,这可用于在可通过v-html指令传递的方法中使用标记。在函数组件中,可以将此方法作为渲染函数中的第一个参数进行访问。使用JSX由于VueCLI3默认支持使用JSX,您现在可以(如果需要)在JSX中编写代码(例如,您可以方便地编写函数组件)。如果你还没有使用VueCLI3,你可以使用babel-plugin-transform-vue-jsx来获得JSX支持。自定义v-model默认情况下,v-model是@input事件侦听器和:value属性的语法糖。但是,您可以在Vue组件中指定一个模型属性来定义要使用的事件和值属性——太棒了!exportdefault:{model:{event:'change',prop:'checked'}}总结这绝不是VueJS技巧的完整列表,这些只是我个人认为最有用的一些,其中一些花费了我很久才开始在Vue中练习,所以我想我可以与大家分享这些知识。希望他们和我一样对你有帮助!你最喜欢的VueJS提示和技巧是什么?我也很想向你学习!参考链接:medium.com/better-prog…learnvue.co/2020/01/7-s…现在关注《前端全栈开发者》微信公众号,同时送上某某在线精品视频课程网盘资料,一定会省你很多钱!