自学鸿蒙HarmonyOS的ArkTS语言<四>@Builder自定义构建函数

作用:可以提取重复的ui, 在buil()中调用 【官方文档传送门】

一、用在自定义组件内
  • 自定义组件内可以有一个或多个@Builder
  • 只能在所属组件的builder方法和其他@Builder中调用,组件外不能调
  • @Builder中的this指当前所属组件,组件的状态变量可以在@Builder中访问,建议通过this访问而不是参数传递
@Component
struct xx() {
  @Builder MyBuilderFunction() { ... }
  
  build() {
     Row(){
       ...
       this.MyBuilderFunction()
     }
  }
}
二、用在全局
  • 不涉及组件状态变化,建议用全局的
@Builder MyGlobalBuilderFunction() { ... }

@Component
struct xx() {
  build() {
     Row(){
       ...
       MyGlobalBuilderFunction()
     }
  }
}
三、参数传递
  • 参数的类型必须与参数声明的类型一致,不允许undefined、null和返回undefined、null的表达式。

  • 在@Builder修饰的函数内部,不允许改变参数值。

A. 按引用传递参数 - 传递的参数为状态变量,且状态变量改变会引起@Builder中ui刷新

注意:传递的必须是对象才是按引用,否则是按值传递
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/b19ff7f5b34549e5afbddabf86ae8350.png
在这里插入图片描述

B. 按值传递参数 — 传递的是状态变量时,状态变量改变并不能引起@Builder的ui刷新
在这里插入图片描述

  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,我会尽力回答您的问题。 首先,需要在Python中安装sqlite3和flask库,可以通过以下命令进行安装: ``` pip install sqlite3 pip install flask ``` 接下来,可以使用以下代码来连接test.db数据库,并查询学生数据表中的所有数据: ```python import sqlite3 # 连接数据库 conn = sqlite3.connect('test.db') # 获取游标 cursor = conn.cursor() # 查询学生数据表中的所有数据 cursor.execute('SELECT * FROM student') results = cursor.fetchall() # 关闭游标和连接 cursor.close() conn.close() ``` 接下来,可以使用flask库创建一个Web应用程序,并将查询到的学生数据以表格的形式展示出来。可以参考以下代码: ```python from flask import Flask, render_template import sqlite3 app = Flask(__name__) @app.route('/') def show_students(): # 连接数据库 conn = sqlite3.connect('test.db') # 获取游标 cursor = conn.cursor() # 查询学生数据表中的所有数据 cursor.execute('SELECT * FROM student') results = cursor.fetchall() # 关闭游标和连接 cursor.close() conn.close() # 将查询结果传递给HTML模板,并进行渲染 return render_template('students.html', students=results) if __name__ == '__main__': app.run() ``` 在上面的代码中,我们使用了Flask的`render_template`函数将查询到的学生数据传递给了一个名为`students.html`的HTML模板。下面是`students.html`模板的示例代码: ```html <!DOCTYPE html> <html> <head> <title>学生信息</title> <style> table { margin: 20px auto; border-collapse: collapse; width: 80%; } th, td { padding: 10px; border: 1px solid #ddd; text-align: center; } th { background-color: #f2f2f2; color: #333; font-weight: bold; } tr:nth-child(even) { background-color: #f2f2f2; } tr:hover { background-color: #ddd; } </style> </head> <body> <h1>学生信息</h1> <table> <tr> <th>学号</th> <th>姓名</th> <th>性别</th> <th>年龄</th> <th>班级</th> </tr> {% for student in students %} <tr> <td>{{ student[0] }}</td> <td>{{ student[1] }}</td> <td>{{ student[2] }}</td> <td>{{ student[3] }}</td> <td>{{ student[4] }}</td> </tr> {% endfor %} </table> </body> </html> ``` 在上面的代码中,我们使用了HTML的`<table>`标记来创建了一个表格,并使用CSS样式来设置了表格的样式。在Flask中,我们可以使用`{{ }}`来插入Python代码,并使用`{% %}`来插入控制语句,例如`{% for %}`循环。在上面的代码中,我们使用了`{% for %}`循环将查询到的学生数据逐行渲染到表格中。 最后,运行Python代码,并在浏览器中访问`http://localhost:5000/`即可查看学生数据信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Misha韩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值