HarmonyOS NEXT
1.什么是弹性布局?
Flex 容器,弹性布局分为单行布局和多行布局,
- 单行内:当子元素尺寸总和大于 Flex 容器尺寸是,子元素会自动挤压。
- 多行内:用wrap属性控制自动换行
2.绝对定位和相对定位的区别?
- 绝对定位:position,相对父组件左上角进行偏移,不占位置
- 相对定位:offset,相对自身左上角进行便宜,占位置
3.什么是层叠布局?
- Stack :实现位置的固定定位与层叠,后一个子元素覆盖前一个子元素
- 通过 alignContent 来设置子组件的位置
4.@Extend、@Styles、@Builder 区别?
名称
| 得当
| 参数
| @Styles
| 抽取 公共样式、变乱
| 不可以传递参数
| @Extend
| 扩展 特定组件样式、变乱
| 可以传递参数
| @Builder
| 抽取 布局、样式、变乱
| 可以传递参数
|
5.容器组件 Scroll?
可滚动的容器组件,当子组件的布局尺寸超过Scroll的尺寸时,内容可以滚动
- // scrollEdge 返回顶部或者底部
- this.scroller.scrollEdge(Edfe.Top)
- this.scroller.scrollEdge(Edfe.Bottom)
- // currentOffset() 获取页面滚动的距离
- this.scroller.currentOffset().yOffset//y轴滚动距离
- this.scroller.currentOffset().xOffset//x轴滚动距离
- //滚动事件 页面滚动时触发
- onScroll(()=>{})
复制代码 6.容器组件Tabs?
通过页签进行内容视图切换的容器组件,每个页签对应一个内容视图。
- @Entry
- @Component
- struct Index {
- build() {
- Tabs() {
- TabContent() {
- //内容区域只能有一个子组件
- text('首页内容')
- }
- .tabBar('首页')//导航栏
- }
- }
- }
复制代码 7.Badge组件?
- 以附加在单个组件上用于信息的标志(气泡)的容器组件(比如微信消息提示来消息了)
- Badge({
- count:0,//0不显示 大于0显示
- value: '0', //设置字符串 可以是数字 会都显示
- position: BadgePosition.Right,//气泡的位置
- style: {}
- })
- {
- //单个子元素
- }
复制代码 8.new操作符做了什么
1.创建一个新对象
2.函数内部的this指向这个对象
3.执行构造函数代码
4.返回新对象
9.罗列(enum)是什么,他的上风,应用案例。罗列和长乱搞罗列的区别
是一种特殊的数据类型,约定变量只能在一组数据范围内选值
- 比如:我们把颜色给变量,下次我们直接写变量就可以了(颜色值是常用主色)
- enum Color {
- Red,
- Green,
- Blue
- }
- let selectedColor: Color = Color.Red;
复制代码 罗列和常量罗列的区别:
- 罗列可以包含计算得出的值,而常量罗列则在编译阶段被删除,并且不能包含计算得出的值,他只能包含常量成员。
- 常量罗列在编译后会被删除,而普通罗列会生成真实的对象。
10、类型断言
编辑器识别不了类型,自己能识别就用 as 逼迫指定类型(自己不确定不要用!!!)
- let Value : any = "10"
- 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企服之家,中国第一个企服评测及商务社交产业平台。 |