ArkUI 数据绑定、列表渲染、事件处理
前言
有过开发微信小程序经验的小伙伴学习鸿蒙应用开发非常容易过渡过来。
HML(HarmonyOS Markup Language)是一套类HTML的标记语言,通过组件,事件构建出页面的内容。页面具备数据绑定、事件绑定、列表渲染、条件渲染和逻辑控制等高级能力。
一个页面(pages)对应着一个 hml 文件、一个 js 文件、一个 css 文件。
- pages.index
-- index.css
-- index.hml
-- index.js
index.js 使用来写业务代码的地方,存放数据、函数。index.css 和 index.hml 用来定义页面中数据显示的结构和布局以及样式。
首先,页面要显示一些 动态 内容,就需要 数据绑定 ,就是将页面中的数据和 index.js 中的变量绑定起来,在后期有业务需求时改变某个页面节点中的数据。
起步
变量/函数
打开 index.js 文件,data 是我们需要声明变量的位置;函数声明在 data 之后。
export default {
// 变量
data: {
array: [ { id: 1, name: 'jack', age: 18 }, { id: 2, name: 'nick', age: 19 }, { id: 3, name: 'tom', age: 20 } ]
},
// 函数
handleClick(obj) { obj.name = 'changed!' }
}
构建页面
打开 index.hml,定义数据在页面渲染的结构:
<div class="todo-list" for="{{ (index, value) in array }}" tid="id">
<div onclick="handleClick(value)">
<div class="name">
<text>name: {{ value.name }}</text>
</div>
<div class="age">
<text>age: {{ value.age }}</text>
</div>
</div>
</div>
!注意:字符串必须要包裹在 text 标签内,否则不会渲染到页面中。
事件处理
onclick 用于绑定一个点击事件,它可以缩写成 @click ,这与 Vue 一样。
列表渲染
for 用来循环数组,每一个数组的索引值和元素包裹在 () 内,第一个值为索引值,第二个值为数组元素。tid 类似于 Vue 中的 :key,旨在列表中的数据有变更时,提高重新渲染的效率。每一项节点必须保证它的 tid 是唯一的。
如果不使用 in 来自定义元素名称和索引值,就不需要小括号包裹:
<div for="{{array}}"></div>
默认使用 $item 代表元素,$idx 代表索引值,是 index 的缩写。
效果演示
最后点击项,改变其中一个元素的 name 值:

ArkUI 数据绑定、列表渲染、事件处理的更多相关文章
- 前端vue之属性指令、style和class、条件渲染、列表渲染、事件处理、数据双向绑定、表单控制、v-model进阶
今日内容概要 属性指令 style和class 条件渲染 列表渲染 事件处理 数据的双向绑定 v-model进阶 购物车案例 内容详细 1.属性指令 <!DOCTYPE html> < ...
- 【vue2】Style和Class,条件,列表渲染,双向数据绑定,事件处理
目录 1.style和class 2. 条件渲染 2.1 指令 2.2 案例 3. 列表渲染 3.1 v-for:放在标签上,可以循环显示多个此标签 3.2 v-for 循环数组,循环字符串,数字,对 ...
- vue学习笔记(二)- 数据绑定、列表渲染、条件判断
vue的数据绑定和列表渲染的造轮子 GitHub:八至 作者:狐狸家的鱼 双向数据绑定 Vue中数据的双向绑定-v-model 数据->页面 页面->数据 适用:input.select. ...
- angular,vue,react的基本语法—双向数据绑定、条件渲染、列表渲染、angular小案例
基本语法: 1.双向数据绑定 vue 指令:v-model="msg" react constructor(){ this.state{ msg:"双向数据绑定" ...
- 微信小程序结构目录、配置介绍、视图层(数据绑定,运算,列表渲染,条件渲染)
目录 一.小程序结构目录 1.1 小程序文件结构和传统web对比 1.2 基本的项目目录 二.配置介绍 2.1 配置介绍 2.2 全局配置app.json 2.3 page.json 三.视图层 3. ...
- 使用vuejs框架进行列表渲染
爱编程爱分享,原创文章,转载请注明出处,谢谢!http://www.cnblogs.com/fozero/p/6170706.html 1.通过Script引入Vuejs框架 <script t ...
- 03-Vue入门系列之Vue列表渲染及条件渲染实战
3.1. 条件渲染 有时候我们要根据数据的情况,决定标签是否进行显示或者有其他动作.最常见的就是,表格渲染的时候,如果表格没有数据,就显示无数据.如果有数据就显示表格数据. Vue帮我们提供了一个v- ...
- 前端MVC Vue2学习总结(四)——条件渲染、列表渲染、事件处理器
一.条件渲染 1.1.v-if 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: <!-- Handlebars 模板 --> {{#if ok}} <h1&g ...
- Vue入门系列(三)之Vue列表渲染及条件渲染实战
Vue官网: https://cn.vuejs.org/v2/guide/forms.html#基础用法 [入门系列] (一) http://www.cnblogs.com/gdsblog/p/78 ...
随机推荐
- Lombok - 快速入门
1. val 自动识别循环变量类型 本地变量和foreach循环可用. import java.util.ArrayList; import java.util.HashMap; import lom ...
- EasyExcel-合并单元格
pom版本 <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</ ...
- c++ 关于二分的STL 详解
一.解释 以前遇到二分的题目都是手动实现二分,不得不说错误比较多,关于返回值,关于区间的左闭右开等很容易出错,最近做题发现直接使用STL中的二分函数方便快捷还不会出错,不过对于没有接触过的同学,二分函 ...
- 1.windows编程入门MessageBox使用 -windows编程
引言:刚开始入门windows编程的时候,我记得当时我对MFC的给出的一大堆代码感到束手无策.因为历史的缘故,windows编程入门的代码并没有体现出C++语言的简洁性,相反一上来就给了我们一大堆代码 ...
- 『现学现忘』Docker基础 — 38、COPY指令和ADD指令
目录 1.COPY指令 (1)COPY指令说明 (2)COPY指令格式 (3)COPY指令使用 (4)其他 2.ADD指令 (1)ADD指令说明 (2)ADD指令格式 (3)ADD指令使用 (4)不推 ...
- ABAP CDS DDHEADANNO
- React技巧之导入组件
正文从这开始~ 总览 在React中,从其他文件中导入组件: 从A文件中导出组件.比如说,export function Button() {} . 在B文件中导入组件.比如说,import {But ...
- idea控制台不能输入问题
idea控制台不能输入问题 在idea中,使用JUnit测试时,不能在控制台输入,进行下面的设置即可 第一步 :help---> Edit Custom VM Options... 第二步:添加 ...
- 微信小程序接口请求/form-data/单文件、多文件上传
1.普通的微信请求封装 1 const http = (options) =>{ 2 return new Promise((resolve,reject) => { 3 wx.reque ...
- TMS320F280049 ADC 模块学习
1. 功能概述 2. 总体框图 block diagram 3. 可配置内容灵活分配到各个模块 或 某次转换中 4. 时钟配置 ADC 模块直接分频于系统最高时钟 5. SOC 机制 6. 如 ...