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

这7个Vue模式,你可能会经常用到!但是现在看很有帮助!

时间:2023-03-31 18:12:20 vue.js

有梦想,有干货,微信搜索【大千世界】关注这位凌晨还在洗碗的洗碗智者。本文已收录到GitHubhttps://github.com/qq449245884/xiaozhi,里面有完整的测试站点、资料和我的一线厂商访谈系列文章。说实话,阅读文档并不是我们大多数人喜欢的事情,但是当使用像Vue这样随着每个新版本而变化的不断发展的现代前端框架时,我们一直很怀念地错过了一些新的后来出来了。和有用的功能。今天数玩智就带大家看看那些有趣但不那么热门的功能。请记住,所有这些都是官方Vue文档的一部分。1.处理加载状态在大型项目中,我们可能需要将组件分成小块,只在需要时从服务器加载。为了使这更容易,Vue允许我们将组件定义为异步解析组件定义的工厂函数。Vue只会在组件需要渲染的时候触发工厂函数,并将结果缓存起来,以便以后重新渲染。2.3版本中的新功能,异步组件工厂还可以返回以下格式的对象。constAsyncComponent=()=>({//需要加载的组件(应该是一个`Promise`对象)component:import('./MyComponent.vue'),//加载异步组件时使用的组件loading:LoadingComponent,//加载失败时使用的组件error:ErrorComponent,//显示组件加载时的延迟时间,默认为200(毫秒)delay:200,//如果提供超时时间,组件加载也会超时,//然后使用加载失败时使用的组件。默认值为:`Infinity`timeout:3000})使用此方法,我们有其他选项,包括加载和错误状态、组件获取的延迟和超时。2.通过v-once创建低开销的静态组件在Vue中渲染普通的HTML元素非常快,但有时你可能有一个包含大量静态内容的组件。在这种情况下,我们可以在根元素上添加v-once属性来保证这些内容只计算一次并缓存起来,像这样:Vue.component('terms-of-service',{template:`

TermsofService

...一大堆静态内容...
`})详情见官网:https://cn.vuejs.org/v2/指南...3。递归组件组件可以在自己的模板中调用自己。但是他们只能通过name选项来做到这一点:name:'unique-name-of-my-component'当你使用Vue.component全局注册组件时,全局ID将自动设置为组件选项的名称.Vue.component('unique-name-of-my-component',{//...})一不小心,递归组件可能会死循环:name:'stack-overflow',template:'
'类似上面的组件会导致“超出最大堆栈大小”错误,因此请确保递归调用是有条件的(例如使用v-if)。4.内联模板当子组件上出现特殊属性inline-template时,组件会将其内部的内容作为模板,而不是将其作为分发的内容。这使得模板编写更加灵活。

这些被编译为组件自己的模板。

不是父级的嵌入内容。

链接模板需要定义在Vue所属的DOM元素内部。但是,内联模板会使模板的范围更难理解。因此,作为最佳实践,请先在组件中选择模板选项,或者在.vue文件中选择