更多内容请访问:Harmonyos.51cto.comDevEcoStudio3.0鸿蒙上发布了最新版的DevEcoStudio3.0,新增了一个名词ets。什么是ets?可以理解为一种新的语言,同时也完善了ts的一些功能支持。开门见山,先贴出经验:box({styleattribute||acceptvariable||notwrite}){box容器中的子元素}。方框里需要写的样式属性先说说ets的模板创建。第一步下载3.0的IDE下载地址:https://developer.harmonyos.com/cn/develop/deveco-studio#download安装时会自动下载对应的SDK。如果没有可以在settings里面搜索SDK(我也看到了这个ets的sdk包,其实就是我自己打包的一系列ts。比如我的etsapi的存放路径是D:\backup\n021823\AppData\Local\OpenHarmony\Sdk\ets\3.0.0.0\component.如何找到路径如上图所示,有兴趣的朋友可以看看如下图):第二步是创建一个新的模板NEWProject。向下滚动并选择最后一个[standard]EmptyAbility以完成创建。让我们看一下结构和页面。页面下的每一个.ets文件都是一个单独的页面,它们的语法和java的命令风格非常相似。专注于构建功能。page下的每个ets都是一个page,每个page都有一个build函数。importrouterfrom'@system.router';asyncfunctionroutePage(){letoptions={uri:'pages/second'}try{awaitrouter.push(options)}catch(err){console.error(`failcallback,code:${err.code},msg:${err.msg}`)}}@Entry@ComponentstructIndex{=========手动分割线============build(){Flex({direction:FlexDirection.Column,alignItems:ItemAlign.Center,justifyContent:FlexAlign.Center}){//这里先是一个大容器,flex中的属性代表它的布局Text('HelloWorld')//下一个text(HelloWorld)或者Button()同时level是container中的子节点内容。fontSize(50)//这里是text的字体样式。fontWeight(FontWeight.Bold)Button(){//button节点Text('nextpage')//button包含一个文本node.fontSize(25).fontWeight(FontWeight.Bold)}.type(ButtonType.Capsule).margin({//buttoncssstyletop:20}).backgroundColor('#0D9FFB').onClick(()=>{//点击跳转事件routePage()})}.width('100%')//flex的css修改样式level.height('100%')}==========手动拆分line=============}他对应的页面是这样的这。按照这样的语法结构,结合代码模块中的注释可以看出,在一个函数中写结构体风格的js逻辑是很乱的,一不留神就会写错节点。如果我想在容器中包裹一个容器布局,我需要嵌套娃娃和嵌套回调地狱。从前有一座山,山上有一座寺庙。寺中有一和尚,讲故事。讲的故事是以前有一座山~~~~~~~~~~~~最后把这个ETS的语法总结为box({styleattribute||acceptvariable||notwrite}){subelementintheboxcontainer}.box需要写style属性。按照这种写法,一般一个较大的页面有上百个节点,这是不可想象的。我觉得这种写法对开发者很不友好,期待迭代改进。更多信息请访问:Harmonyos.51cto.com,与华为官方合作打造的鸿蒙技术社区
