有没有HarmonyOS鸿蒙Next工程师大佬指点一下:后端一般用什么开发?需要用服务器吗?
有没有HarmonyOS鸿蒙Next工程师大佬指点一下:后端一般用什么开发?需要用服务器吗? 我想开发类似微博或者百度‘发现’功能的页面,里面有很多图片和文字数据,上拉刷新页面数据,点击进入其详情页面,需要通过后端调用接口获取数据吗?对这方面暂时还未接触,有没有大佬说一下过程思路? 示例页面代码:
class MyDataSource implements IDataSource {
public dataArray: Find[] = [];
private listener: DataChangeListener[] = []
registerDataChangeListener(listener: DataChangeListener): void {
}
unregisterDataChangeListener(listener: DataChangeListener): void {
}
public totalCount(): number {
return this.dataArray.length;
}
public getData(index: number): Find {
return this.dataArray[index];
}
public pushData(data: Find[]): void {
this.dataArray = data;
this.notifyDataAdd(this.dataArray.length - 1)
}
notifyDataAdd(index: number) {
this.listener.forEach(listener => {
listener.onDataAdd(index)
})
}
}
interface Find {
content: string
image: ResourceStr
}
export const FindData: Find[] = [
{ content: '第1', image: $r('app.media.startIcon') },
{ content: '第2', image: $r('app.media.startIcon') },
{ content: '第3', image: $r('app.media.startIcon') },
{ content: '第4', image: $r('app.media.startIcon') },
{ content: '第5', image: $r('app.media.startIcon') },
{ content: '第6', image: $r('app.media.startIcon') },
{ content: '第7', image: $r('app.media.startIcon') },
{ content: '第8', image: $r('app.media.startIcon') },
]
@Component
export struct PopularRecommendPage {
@Provide('pageStack') pageStack: NavPathStack = new NavPathStack();
scroller: Scroller = new Scroller()
private data: MyDataSource = new MyDataSource();
aboutToAppear(): void {
this.data.pushData(FindData);
}
build() {
Navigation(this.pageStack) {
Column() {
WaterFlow({ scroller: this.scroller }) {
LazyForEach(this.data, (item: Find) => {
FlowItem() {
Column() {
Image(item.image)
.height('80%')
Text(item.content)
}
.height('100%')
}
.borderWidth(1)
.borderRadius('20lpx')
.width("300lpx")
.height("400lpx")
})
}
.columnsTemplate("1fr 1fr")
.rowsGap("30lpx")
.columnsGap("30lpx")
.padding("40lpx")
}
.width('100%')
}
.backgroundColor('#F1F3F5')
.hideTitleBar(true)
}
}
更多关于有没有HarmonyOS鸿蒙Next工程师大佬指点一下:后端一般用什么开发?需要用服务器吗?的实战教程也可以访问 https://www.itying.com/category-93-b0.html
需要后台提供接口返回数据列表,用户点击列表的某一项之后,APP请求详情页的数据再展示给用户。
后台服务器流行的开发语言是Java、PHP、Python 都能满足你的需求~~
更多关于有没有HarmonyOS鸿蒙Next工程师大佬指点一下:后端一般用什么开发?需要用服务器吗?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
我想实现的是,后端提供一些数据,上拉刷新后,随机选一部分展示,下滑展示更多
鸿蒙Next后端开发主要使用ArkTS语言。需要服务器支持,可通过分布式能力调用云端服务或部署独立服务器。
后端技术选型与开发思路
对于你提到的类似微博或百度“发现”功能的应用,后端开发是必须的。以下是针对HarmonyOS应用的后端开发思路:
1. 后端技术选型
- 语言选择:推荐使用Java、Go、Python或Node.js等主流后端语言,这些语言生态成熟,社区支持完善。
- 框架推荐:
- Java:Spring Boot(企业级首选)
- Go:Gin或Beego(高性能并发场景)
- Python:Django或FastAPI(快速开发)
- Node.js:Express或NestJS(全栈JavaScript开发)
- 数据库:根据数据关系选择:
- 关系型数据:MySQL、PostgreSQL
- 非关系型数据:MongoDB(适合动态内容)、Redis(缓存热点数据)
2. 服务器与部署
- 需要服务器:是的,后端服务必须部署在服务器上。可选择:
- 云服务器:华为云ECS、阿里云、腾讯云等
- 容器化部署:Docker + Kubernetes(适合微服务架构)
- 无服务器架构:华为云FunctionGraph(事件驱动,按需执行)
3. 数据交互流程
- 前端(HarmonyOS应用):通过HTTP/HTTPS请求调用后端API接口
- 后端服务:接收请求 → 处理业务逻辑 → 读写数据库 → 返回JSON格式数据
- 数据格式:建议使用RESTful API设计,返回标准JSON结构,例如:
{ "code": 200, "data": [ { "id": 1, "content": "动态内容", "imageUrl": "https://example.com/image.jpg" } ], "page": 1 }
4. 针对你提供的代码改进建议
- 将硬编码的
FindData改为从后端API动态获取:// 在aboutToAppear中发起网络请求 aboutToAppear(): void { // 调用HTTP接口获取数据 let httpRequest = http.createHttp(); httpRequest.request('https://api.example.com/feed', { method: http.RequestMethod.GET }).then((response) => { let data = JSON.parse(response.result as string).data; this.data.pushData(data); }); } - 实现分页加载:在
WaterFlow的滚动事件中监听触底,加载下一页数据 - 图片处理:建议后端返回图片URL,前端使用
Image组件加载网络图片
5. 关键注意事项
- 接口安全:使用Token鉴权(如JWT)保护API
- 性能优化:
- 图片使用CDN加速
- 接口数据分页(每页20-30条)
- 后端添加Redis缓存层
- 网络兼容性:处理HarmonyOS设备的网络状态变化
总结:你需要独立开发后端服务(或使用现有BaaS服务),提供数据接口供HarmonyOS应用调用。建议先从简单的Spring Boot + MySQL开始,实现基础的增删改查接口,再逐步扩展功能。

