DevEco Studio 3.0 ETS新语法解读

开发 前端
DevEco Studio是一款功能强大的华为鸿蒙系统开发软件,为用户提供了分布式多端开发、分布式多端调测、多端模拟仿真等功能,让开发更加方便快捷。软件提供了丰富的HarmonyOS应用调试能力,满足用户的各种鸿蒙系统开发需求。

[[428938]]

想了解更多内容,请访问:

51CTO和华为官方合作共建的鸿蒙技术社区

https://harmonyos.51cto.com

DevEco Studio 3.0

最新版本的 DevEco Studio 3.0发布了 在鸿蒙里面有一个新的名词叫ets, 什么是ets呢 可以理解为一门新的语言 它随之也完善了ts一些功能支持。

开门见山,先贴经验 :

box({ 样式属性||接受变量||不写 }){ box容器内子元素 }.box需要写的样式属性

先说一下ets的模板创建

第一步

下载 3.0的IDE

下载地址:https://developer.harmonyos.com/cn/develop/deveco-studio#download

安装时会自动下载对应的 SDK

如果没有的 可以在setting里搜索SDK

  #星光计划1.0# DevEco Studio 3.0   ETS新语法解读-鸿蒙HarmonyOS技术社区

(我也看过这个ets的 sdk包,其实就是自己封装的一系列ts

例如我的ets api 存放路径就是 D:\backup\n021823\AppData\Local\OpenHarmony\Sdk\ets\3.0.0.0\component,

如何查找路径如上图,有兴趣的朋友可以看看 如下图):

  #星光计划1.0# DevEco Studio 3.0   ETS新语法解读-鸿蒙HarmonyOS技术社区

第二步

文件新建 新的模板 NEW Project。

  #星光计划1.0# DevEco Studio 3.0   ETS新语法解读-鸿蒙HarmonyOS技术社区

​拉到下面选择 最后一个 [standard]Empty Ability 完成创建。

  #星光计划1.0# DevEco Studio 3.0   ETS新语法解读-鸿蒙HarmonyOS技术社区

下面大家看看结构和页面。

  #星光计划1.0# DevEco Studio 3.0   ETS新语法解读-鸿蒙HarmonyOS技术社区

page下面的每个 .ets文件都是一个单独的页面,它们的语法和java的命令式很相像。

着重看 build函数 page下每个ets都是一个页面 ,每个页面都有一个build函数。

  1. import router from '@system.router'
  2.  
  3. async function routePage() { 
  4.   let options = { 
  5.     uri: 'pages/second' 
  6.   } 
  7.   try { 
  8.     await router.push(options) 
  9.   } catch (err) { 
  10.     console.error(`fail callback, code: ${err.code}, msg: ${err.msg}`) 
  11.   } 
  12.  
  13. @Entry 
  14. @Component 
  15. struct Index { 
  16. =========手动分割线============ 
  17.   build() { 
  18.     Flex({ direction: FlexDirection.Column, alignItems:  
  19. ItemAlign.Center, justifyContent: FlexAlign.Center }) {    
  20.  //这里首先是一个大的容器 flex  里面的属性代表它的布局方式 
  21.       Text('Hello World')   
  22.         //接下来的text (Hello World) 或者 同级的Button()  都是容器里面的子节点内容 
  23.         .fontSize(50)      //此处为text的字体样式   
  24.         .fontWeight(FontWeight.Bold) 
  25.       Button() {  //button 节点 
  26.         Text('next page')   // button里 又包含了一个 text 文本节点    
  27.           .fontSize(25) 
  28.           .fontWeight(FontWeight.Bold) 
  29.       }.type(ButtonType.Capsule) 
  30.       .margin({       // button的css样式  
  31.         top: 20   
  32.       }) 
  33.       .backgroundColor('#0D9FFB'
  34.       .onClick(() => {    //点击跳转事件 
  35.         routePage() 
  36.       }) 
  37.     } 
  38.     .width('100%')    // flex层级的css修饰样式   
  39.     .height('100%'
  40.   } 
  41. =========手动分割线============ 

他对应的页面是这样的。

  #星光计划1.0# DevEco Studio 3.0   ETS新语法解读-鸿蒙HarmonyOS技术社区

按照如此的语法结构 结合代码模块里的注释去看 在 一个函数 写结构 样式 js逻辑 是不是显得非常杂乱,稍微不注意 就写错了节点。

如果我想在容器里面再包一个容器 布局 那就需要套娃 和嵌套回调地狱一样 从前有座山 山里有座庙,庙里有个和尚讲故事 讲的故事是 从前有座山~~~~~~~~~~~~

  #星光计划1.0# DevEco Studio 3.0   ETS新语法解读-鸿蒙HarmonyOS技术社区

最后总结一下 这个ETS 的语法就是box({ 样式属性||接受变量||不写 }){ box容器内子元素 }.box需要写的样式属性。

按照这种写法 一般大一点的页面成百上千的个节点那不敢想象。

我觉得的把这种写法对开发者很不友善,期待迭代改进。

想了解更多内容,请访问:

51CTO和华为官方合作共建的鸿蒙技术社区

https://harmonyos.51cto.com

 

责任编辑:jianghua 来源: 鸿蒙社区
相关推荐

2010-03-29 10:45:48

HTML 5

2022-10-27 15:57:26

开发工具鸿蒙

2009-09-18 15:53:37

C# 3.0新语言特性

2022-08-19 12:12:02

TypeScriptInfer 类型

2021-08-30 13:00:40

JS代码前端

2022-07-27 14:38:14

低代码开发JS开发

2020-04-22 14:15:32

Vue 3.0语法前端

2021-07-15 09:37:35

鸿蒙HarmonyOS应用

2010-09-09 15:32:48

SQL插入数据

2023-03-13 15:03:05

鸿蒙ArkUI

2022-01-07 09:56:16

鸿蒙HarmonyOS应用

2022-04-12 11:35:43

IDE工具OHOS应用鸿蒙

2023-02-22 15:11:51

鸿蒙应用签名

2023-12-29 08:58:48

Launch分析调优工具

2021-12-28 08:46:00

Vue3refreactive

2010-02-05 11:23:01

C++声明语法

2010-04-16 14:08:46

Visual Stud

2009-12-09 10:34:54

PHP基本语法结构

2010-03-15 14:52:02

Python 3.0

2023-03-02 20:46:32

鸿蒙云存储服务
点赞
收藏

51CTO技术栈公众号