HarmonyOS NEXT鸿蒙30道高频口试题总结

打印 上一主题 下一主题

主题 937|帖子 937|积分 2811

HarmonyOS NEXT

1.什么是弹性布局?

Flex 容器,弹性布局分为单行布局和多行布局,


  • 单行内:当子元素尺寸总和大于 Flex 容器尺寸是,子元素会自动挤压。
  • 多行内:用wrap属性控制自动换行
2.绝对定位和相对定位的区别?



  • 绝对定位:position,相对父组件左上角进行偏移,不占位置
  • 相对定位:offset,相对自身左上角进行便宜,占位置
3.什么是层叠布局?



  • Stack :实现位置的固定定位与层叠,后一个子元素覆盖前一个子元素
  • 通过 alignContent 来设置子组件的位置
4.@Extend、@Styles、@Builder 区别?

名称
得当
参数
@Styles
抽取 公共样式、变乱
不可以传递参数
@Extend
扩展 特定组件样式、变乱
可以传递参数
@Builder
抽取 布局、样式、变乱
可以传递参数

5.容器组件 Scroll?

可滚动的容器组件,当子组件的布局尺寸超过Scroll的尺寸时,内容可以滚动
  1. // scrollEdge 返回顶部或者底部
  2. this.scroller.scrollEdge(Edfe.Top)
  3. this.scroller.scrollEdge(Edfe.Bottom)
  4. // currentOffset() 获取页面滚动的距离
  5. this.scroller.currentOffset().yOffset//y轴滚动距离
  6. this.scroller.currentOffset().xOffset//x轴滚动距离
  7. //滚动事件  页面滚动时触发
  8. onScroll(()=>{})
复制代码
6.容器组件Tabs?

通过页签进行内容视图切换的容器组件,每个页签对应一个内容视图。
  1. @Entry
  2. @Component
  3. struct Index {
  4.   build() {
  5.     Tabs() {
  6.       TabContent() {
  7.         //内容区域只能有一个子组件
  8.         text('首页内容')
  9.       }
  10.       .tabBar('首页')//导航栏
  11.     }
  12.   }
  13. }
复制代码
7.Badge组件?



  • 以附加在单个组件上用于信息的标志(气泡)的容器组件(比如微信消息提示来消息了)
  1. Badge({
  2.   count:0,//0不显示  大于0显示
  3.   value: '0', //设置字符串  可以是数字 会都显示
  4.   position: BadgePosition.Right,//气泡的位置
  5.   style: {}
  6. })
  7. {
  8.   //单个子元素
  9. }
复制代码
8.new操作符做了什么

1.创建一个新对象
2.函数内部的this指向这个对象
3.执行构造函数代码
4.返回新对象
9.罗列(enum)是什么,他的上风,应用案例。罗列和长乱搞罗列的区别

是一种特殊的数据类型,约定变量只能在一组数据范围内选值


  • 比如:我们把颜色给变量,下次我们直接写变量就可以了(颜色值是常用主色)




  1. enum Color {
  2.     Red,
  3.     Green,
  4.     Blue
  5. }
  6. let selectedColor: Color = Color.Red;
复制代码
罗列和常量罗列的区别:


  • 罗列可以包含计算得出的值,而常量罗列则在编译阶段被删除,并且不能包含计算得出的值,他只能包含常量成员。
  • 常量罗列在编译后会被删除,而普通罗列会生成真实的对象。
10、类型断言

编辑器识别不了类型,自己能识别就用 as 逼迫指定类型(自己不确定不要用!!!)
  1. let Value : any = "10"
  2. let Length: number = (Value as ).lngth
复制代码
11、ArkTS和TS有什么区别?

类型系统
TS: 变量类型不消提前定,写的快,得当小型项目,大型项目容易出类型错误。
ArkTS:静态类型,编译不对,用于大型鸿蒙应用保障数据交互
类和继承
TS:用“原型链”实现复用,简朴场景好用,复杂的继承关系不好管理。
ArkTS:类、接口更严谨,大型应用扩展起来更方便。
装饰器
TS:装饰器还在实验阶段,用起来受限
ArkTS:已经成熟,用来配置鸿蒙组件的
模块系统
TS:很贫苦,模块规范多,不同环境要选不同规范
ArkTS:直接用ES6的规范+鸿蒙自己规定的规范,服从更高
应用开辟语法
TS:通过操作网页DOM元素实现交互,这种得当传统网页开辟
ArkTS:用声明式语法构建UI(直接界说界面布局),开辟鸿蒙应用更快更简朴
12、ArkUI的焦点计划头脑是什么?



  • 声明式开辟
通过状态驱动视图更新


  • 跨平台能力
一套代码能跑手机、平板、手表、电视等装备。
通过自适应布局,自动适配不同屏幕巨细,开辟者不消为每个装备单独写布 局代码。


  • 用户体验优先
优化渲染引擎让界面滑动更流畅,提供统一的计划规范组件库,包管多端同等。还支持JavaScript/TS/Java等多语言开辟,还能自界说组件插件,方便扩展功能。

13、什么是线性布局?

通过线性容器 Row 和 Column 构建,Row容器内的子元素按照程度方向排列,Column容器内的子元素按照垂直方向排列。根据不同的排列方向,开辟者可以选择合适的容器创建线性布局。
14、线性布局对齐方式?

主轴:justifyContent()
.start : 默认,组件靠左或靠上排列
.end : 组件靠右/下排列
.center : 组件居中排列
.space-between : 两端对齐,中央间距均分
space-around : 每个组件左右/上下间距相称
交叉轴:alignltems()
.start : 顶部对齐
.end :底部对齐
.center : 垂直居中
.stretch : 组件拉伸填满交叉轴空间
15、什么是弹性布局?

弹性布局分为单行布局和多行布局。默认环境下,Flex 容器中的子元素都排在一条线上。子元素尺寸总和大于 Flex 容器尺寸时,子元素尺寸会自动挤压。
wrap 属性控制当子元素主轴尺寸之和大于容器主轴尺寸时,Flex是单行布局还是多行布局。在多行布局中自动换行
16、Flex布局和Column/Row布局如何选择?

Flex更得当复杂布局,Column/Row用于线性布局,简朴布局。
17、绝对定位和相对定位的区别?

绝对定位:position , 相对父组件左上角进行偏移,不占位置
相对定位:
18、什么是层叠布局?

层叠布局通过Stack 容器组件实现位置的固定定位与层叠,容器中的子元素后一个覆盖前一个子元素。
通过 alignContent 来设置子组件的位置
场景:图片上叠加笔墨标签
按钮右上角体现未读消息红点
弹窗浮层覆盖配景
19、ArkUI中常用的容器组件?

Column / Row / Flex / Stack / List / Grid / Swiper / Tabs /Popup
20、@Extend、@Style、@Builder区别?

名称
得当
参数
@Styles
抽取 公共样式、变乱(只能在页面全局内使用,不能export)
不可以传递参数
@Extend
扩展 特定组件样式(不能在@Component组件内部使用)、变乱
可以传递参数
@Builder
抽取 布局、样式、变乱
可以传递参数
21、组件生命周期

系统组件
onAppear:当组件出如今屏幕上时触发
onDisAppear: 当组件从屏幕消散时候触发
自界说组件(未被Entry修饰的组件)
AboutToAPPear: 组件即将展示 场景:进行预加载或初始化
AboutToDisappear: 组件即将消散触发 用处:整理数据
AboutToReuse :组件即将被复用 用处:
自界说组件(被Entry修饰)
onPageShow: 页面展示时触发
onPageHide: 页面隐蔽时触发
onBackPress:返回操作时触发
22、在ArkTS中,如何处理惩罚组件间的通讯7?

父传子(单向)
使用 @Prop 装饰器。子组件接收只读属性,父组件更新子组件同步更新。
子传父
@Link:双向数据绑定,子组件可以修改父组件状态。
跨层级通讯
使用@Provide 和 @Consume。祖先组件用 @Provide 提供数据,后代组件用 @Consume接收。
23、如安在ArkTS中实现应用级状态管理?
AppStorage:
跨页面,跨UIAbility状态共享
通过@StorageLink 和 @StorageProp 实现双向/单向同步
LocalStorage:
页面级状态管理,适用于同一页面内多组件共享状态
通过@LocalStorageLink 和 @LocalStoragePrp绑定
24、说一说数组常用的API
push()-在数组末端加上一个或多个元素
pop()-删除数组的末了一个元素,并返回那个元素
shify()-删除数组的第一个元素,并返回那个元素
unshift()-在数组的开始添加一个或多个元素,并返回新的长度
slice()-返回数组的一个浅拷贝
splice() -通过删除现有元素和/或添加新元向来更改一个数组的内容
concat()-链接两个或多个数组,返回一个新数组
join()-将数组中的全部元素转换为一个字符串
reverse()-颠倒数组中元素的顺序
sort()-对数组的元素进行排序
forEach()-遍历数组中的每个元素并执行回调函数
map()-创建一个新数组,其包含通过所提供函数实现的测试的全部元素
reduce()-对数组中的每个元素执行一个由您提供的reducer函数
reduceRight()-对数组中的每个元素执行一个有您提供的reducer函数
25、typeof 与 instanceof 的区别
作用不同
typeof 用于判断根本数据类型,对于对象类型只能判断“object”无法区分对象类型。
instanceof 判断对象是不是某个构造函数或类的实例
返回值不同
typeof 返回字符串
instanceof 返回布尔值,原型链
26、什么是联合类型和交叉类型?

联合类型表示一个值可以是多种类型中的一种,而交叉类型表示一个新类型,他包含了多个类型的特性。
27、const和readonly的区别?

28、interface可以给Function/Array/Class做声明吗?

29.说一说静态类型和动态类型有什么区别?

30、ArkTS中的模块化是如何工作的,举例说明?

31.AppStorage 和 PersistentStorage 的区别



  • 焦点区别表如今 数据生命周期使用场景
特性
AppStorage
PersistentStorage
数据存储位置
内存
装备本地存储
生命周期
应用进程存在期间
持久化(跨应用启动)
数据共享范围
应用内全局
应用内全局(但需通过AppStorage访问)
持久化能力

是(自动同步)
典型使用场景
暂时状态、页面间参数传递
用户配置、登录状态等须要保留的数据

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

光之使者

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表