提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|使用教程|编辑:龚雪|2021-03-10 10:09:42.153|阅读 122 次
概述:在本文中,我们将探讨Vue的
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
就目前而言,已经在如何将组件放置到用户屏幕上增加了价值,但是仍然可以看到它的问题,仍需将组建手动添加到应用程序中,并且即使浏览站点的用户永远看不到它们,也将全部加载这些组件。
采取一些步骤,使这些组件根据浏览器的要求动态加载,这将使应用程序包更小,因为webpack会将它们放置在外部块中。
对于这种方法,我们将修改计算属性来返回一个函数,该函数将动态地导入组件。
<script> const Guest = () => import("./components/Guest") const User = () => import("./components/User") const Member = () => import("./components/Member") export default { data() { return { user: null }; }, computed: { userComponent() { if (!this.user) return Guest; if (this.user && !this.user.subscription) return User; if (this.user && this.user.subscription) return Member; } } }; </script>
首先请注意,顶部的所有import语句现在都消失了。 这不再是必需的,因为组件将根据需要动态且异步地加载。 但是,我们选择在顶部创建const变量来导入它们。
如果直接在计算属性中返回import语句,则每次执行该语句都会返回一个新函数。如果以后您想使用<keep-alive>元素,则不会保留您的状态。
userComponent计算属性进行了重构,现在它分别返回带有import语句的函数,此函数本身返回一个将分解为组件的promise,即…drumroll…
如果您不关心没有返回语法的arrow函数,可以这样重写return语句:
const User = function() { return import('./components/Guest') }
关于<component>值得一提的小问题是<keep-alive>的特殊元素。
有时您会希望用户在应用程序内的不同元素之间切换。 想象一下,如果在我们的演示场景中,该成员还可以访问一个按钮,以切换到“用户”视图来使用某些其他功能。
您只需在计算的属性中添加一些额外的逻辑即可通过单击按钮在它们之间切换,但是当用户开始使用每个组件并来回跳转时,它们将遇到一个非常特殊的问题 - Vue是 当用户在组件之间切换时,销毁并重新安装组件,本地存储在组件中的任何状态都将完全丢失。
对于要使组件保持激活状态的这类场景,您可以在dev-belt上使用此工具。
<keep-alive> <component :is="userComponent"/> </keep-alive>
通过简单地将<component>包装在<keep-alive>中,Vue将开始缓存并保留这些组件在屏幕上交换时的状态。
如果直接在计算属性中返回导入函数,由于JavaScript比较的工作方式,该状态将不会被缓存。 简而言之,功能将不完全相同。
设置App.vue,以便可以轻松地在要测试的组件之间切换。
<template> <div id="app"> <keep-alive> <component :is="userComponent"/> </keep-alive> <br> <button @click="user = null">Guest</button> <button @click="user = {}">User</button> <button @click="user = {subscription: true}">Member</button> </div> </template> <script> const Guest = () => import("./components/Guest"); const User = () => import("./components/User"); const Member = () => import("./components/Member"); export default { data() { return { user: null }; }, computed: { userComponent() { if (!this.user) return Guest; if (this.user && !this.user.subscription) return User; if (this.user && this.user.subscription) return Member; } } }; </script> <style> #app { font-family: "Avenir", Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-align: center; color: #2c3e50; margin-top: 60px; } </style>
此外,对User.vue进行一些更改来添加基本的内部状态进行测试。
<template> <div> <div>User component {{ count }}</div> <br> <button @click="count++">MOAR!</button> </div> </template> <script> export default { name:'User', data() { return { count: 0 } } } </script>
如果您现在单击MOAR按钮并增加计数器并在不同组件之间切换,则应该能够看到该状态已正确保存给用户。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
文章转载自:慧都网本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
全新升级的Kendo UI,是创建数据丰富的Web应用程序的最完整UI库。
Kendo UI for Vue创建响应式Web应用的完整UI组件库。
Kendo UI for jQuery完整的jQuery UI组件库,可快速构建出色的高性能响应式Web应用程序。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢