检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
在AstroZero中自定义高级页面组件(widget)时,修改了JS文件,修改部分不生效? 问题描述 修改自定义组件widget的JS文件后,修改部分未生效。 解决方法 自定义组件(widget)上传新的版本后,需要在“页面设置”中,对插件进行升级更新。
如何通过JS代码,实现页面与后台接口间的交互 使用说明 如果您擅长编写JS代码,可以不使用事件编排器中的内置动作,直接通过手动编写JS代码实现事件的逻辑功能。
标准页面中预置的API 在开发标准页面时,可以通过编写JS代码,来实现页面组件与后台接口之间的交互。如图1所示,在编写JS代码时,可直接使用系统预置的API。 系统预置的API代码结构样例如下,提供事件上下文context,用于封装常用的对象及API。
从左侧“动作”区,设置“内置动作”或“自定义动作”,自定义动作需自定义JS代码逻辑,可单击代码区域右侧的,最大化自定义JS代码页面。 图1 页面自定义JS代码 在左侧模板代码中,单击服务编排或脚本左侧的,复制代码到右侧代码编辑区域,即可出现系统预置的经典接口。
组件 在开发自定义组件时,需要定义“组件名.js”文件,该文件为组件逻辑文件,是整个组件的渲染核心JS,在组件编辑状态和页面最终的发布运行态都会被加载执行。主要包含的预置API说明,请参见表1。
目录结构如图3所示,其中userLogin.js文件是写vue业务逻辑的代码,userLogin.ftl用于写html代码,userLogin.css用于写样式代码,userLogin.editor.js以及packageinfo.json是配置文件。
选择“自定义动作”,在右侧事件定义区域,输入实现事件逻辑的JS代码,也可从左侧拖动相关模板至右侧事件定义区域,单击“创建”。 内置JS事件说明及使用方法,请参见如何通过JS代码,实现页面与后台接口间的交互。
模块管理机制类似Node.js,但因为平台是基于数据库存放脚本,没有目录与路径的概念,所以下面的module管理只是一个简化版本的Node.js模块管理,也不支持npm的整套机制。 脚本文件和模块是一一对应的,每个脚本被视为一个独立的模块。
如下加粗代码所示,“widget_demo_property.editor.js”中分别定义了text、 checkbox以及select类型的三个属性参数。
例如,查看组件editor.js文件中model值为“SingleRepireDataViewModel”,查看“折柱图数据桥接器”和“柱状图和折线图数据桥接器”的“packageinfo.json”文件中model值同样为“SingleRepireDataViewModel”。
若勾选“合并并压缩资源”,会对所有高级页面涉及的css和js文件进行合并及压缩,使用单页面性能检查功能时,不要勾选该选项。 图1 关闭“合并并压缩资源”属性 设置完成后,单击,并单击,释放锁。
站点设置 合并并压缩资源:勾选后,在发布该应用时,对应用中所有高级页面涉及的css和js文件进行合并及压缩,这样可以有效降低运行时服务器压力,但从终端浏览器首次访问该站点页面时,访问时间会稍微增加。 资源延迟加载:勾选后,在body标签中加载资源。
开发自定义组件前,请先了解JS和Vue相关知识,具备一定的JS和Vue开发经验。 自定义组件结构 自定义组件包,目录结构如下。
添加库扩展AstroZero标准页面功能 如果您希望使用第三方库文件,而当前系统中不存在该库,您可以通过上传,新增该JS/CSS库,并在页面中设计并使用该库,实现引入第三方库的功能。本节将介绍如何引入并使用第三方库的具体操作步骤。
输入自定义JS代码,调用库中的方法获取git仓库的地址。 关于fetch的使用方法及介绍,请参考Fetch API。
启用js编译器:当打包的应用内有高级页面时,才会显示该参数。开启后,会将高级页面引用的插件和资源进行JS编译,使代码规范化。 高级设置 > 导航栏显示方式:导航栏配置,在小程序展示时是否显示导航栏。 单击“发布”,在“发布信息确认”页面检查发布参数,检查无误后单击“确定”。
例如,MintUI库需要引入文件“js/index.js”和“css/index.css”,请在packageinfo.json中添加这两个文件的描述。其中,“js”和“css”用于定义文件类型,“name”用于定义文件路径及名称。
自定义校验:是否进行自定义校验,打开后需要设置校验JS代码。当输入框在表单组件中,该设置才会生效。 校验方法:输入JS代码定义校验规则,代码的返回值必须为布尔类型或者对象类型。
例如,MintUI库需要引入的文件有“js/index.js”和“css/index.css”文件,请在packageinfo.json中添加这两个文件的描述,如下所示。其中,“js”和“css”定义文件类型,“name”定义文件路径及名称。
例如,MintUI库需要引入的文件有“js/index.js”和“css/index.css”文件,请在packageinfo.json中添加这两个文件的描述,如下所示。其中,“js”和“css”定义文件类型,“name”定义文件路径及名称。