鸿蒙 OS:使用 JavaScript 开发 Todo App UI 界面,2024年最新美团点评面试经验

接下来是 Todo App 应用的容器,使用 class 名字为 container 的 div 表示:

在 container 里边,使用 text 标签显示标题,hml 中所有的文字都使用 text 标签表示:

欢迎使用 Feng 待办事项!

接下来是添加 todo 项目的输入框和按钮,这部分跟 html 一样:

+

再下面是过滤选项,除了文字使用 text 表示之外,也跟 html 一样:

全部

已完成

未完成

最后是 todo 列表,这里写死了两个待办事项,后面我们会把它的数据重构到 js 文件中。这里选择使用了 div 来显示 todo 列表,也可以使用 list 和 list-item,不过我个人觉得 list 适合整个页面是个列表页的情况,或者列表数据特别多的情况,你也可以自己尝试一下,不过记得使用 background-color 和 box-shadow 去掉 list 的背景和阴影。Todo 列表的 hml 结构代码如下:

待办1

待办2

hml 结构到这里就写完了,接下来编写 CSS 样式。

编写 CSS 部分


鸿蒙中的 CSS 与普通的 CSS 还是有一些区别的,有些属性用法不同,并且不同的标签对于 CSS 属性的支持程度也不一样,可以参考 HML 部分中提到的 API 文档。在鸿蒙 TV 项目中,容器默认是 flex 布局,并且 flex-direction 为 row,行方向,这个需要注意一下。

打开 index.css,我们先给 text 标签设置默认的文本颜色,因为我们的应用是浅色,而鸿蒙的主题为深色,所以文本为白色,这样就看不到了,而且我也没找到如何修改默认主题,这个你可以研究一下~。text 标签的 css 代码如下:

text {

color: #414873;

}

接下来设置最外层容器的样式,这里的 css 与普通的没什么区别:

  • 把 Todo App 容器居中

  • 背景色设置为淡紫色

.main {

justify-content: center;

background-color: rgb(203, 210, 240);

}

再设置 Todo App 容器的样式

  • 设置宽度、内间距、阴影、圆角边框。这里要注意,圆角边框的值不能是百分比。

  • 设置背景色只能使用 background-color,不能使用 background 简写形式,background 只能用来设置 linear-gradient 渐变色,如果设置背景图,则需要使用 background-image。

  • 最后把 flex 的方向改成列方向,竖向排列。

.container {

width: 60%;

padding: 48px 28px;

box-shadow: 0px 0px 24px rgba(0, 0, 0, 0.15);

border-radius: 24px;

background-color: rgb(245, 246, 252);

flex-direction: column;

}

容器的第一行,是标题,我们设置一下它的外边距、文字大小,我们这里把 flex-shrink 设置为 0,因为 TV 版不支持竖向滚动条,放的内容多了之后就会互相挤占空间(解决方法是在设计界面的时候该改成横向式布局,甩锅设计师~),这里就用禁止缩放来做为临时解决方法,这个不是重点:

.h1 {

margin: 24px 0;

font-size: 28px;

flex-shrink: 0;

}

标题下方是添加 todo 项目的输入框和按钮,首先给它们的容器设置相对定位,垂直居中对齐子元素:

.input-add {

position: relative;

align-items: center;

flex-shrink: 0;

}

对于输入框,设置一下它的大小,内间距,文字大小等,这里把它 z-index 设置为 5,因为后边的添加按钮要覆盖在它的上边:

.input-add input {

padding: 24px 52px 24px 18px;

border-radius: 48px;

box-shadow: 0px 0px 24px rgba(0, 0, 0, 0.08);

width: 100%;

font-size: 24px;

align-items: center;

justify-content: center;

color: #626262;

z-index: 5;

}

按钮的样式:

  • 设置为圆形

  • 使用 background 设置渐变的背景色

  • 设置+号文本为白色,文字大小为 18px

  • 向左移动 36px,紧贴输入框的右边框

  • 设置 z-index 为 10,来覆盖在输入框上边。

.input-add button {

width: 36px;

height: 36px;

border-radius: 18px;

background: linear-gradient(#c0a5f3, #7f95f7);

color: white;

font-size: 18px;

left: -36px;

z-index: 10;

}

剩下的过滤选项和 todo 列表的 CSS 就没什么特殊的了,可以参考文章开头提供的、完整的源代码实现。另外要注意的是,这里的 CSS 不支持 before 和 after 伪元素,因为毕竟不是原生的 html,无法创建虚拟的 dom。

编写 JS 部分


我们的过滤选项和 Todo 列表中的数据可以从 JS 中获取,在 JS 中定义好数据,然后在 hml 中访问,这里的语法和方式跟 Vue 一样。

打开 index.js 文件,删除 data 中的示例数据和示例的生命周期函数,然后添加过滤选项需要的数据 filters,和 todo 列表中的数据 todos:

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数HarmonyOS鸿蒙开发工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年HarmonyOS鸿蒙开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上HarmonyOS鸿蒙开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注鸿蒙获取)
img

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

805550311)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上HarmonyOS鸿蒙开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注鸿蒙获取)
[外链图片转存中…(img-RnPdZFQ9-1712805550311)]

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 25
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值