HarmonyOS 鸿蒙Next简单计数器
HarmonyOS 鸿蒙Next简单计数器
<!DOCTYPE html>
<html lang="zh-CN" data-theme="light">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>简单计算器</title>
<script src="https://cdn.tailwindcss.com"></script>
<link href="https://cdn.bootcdn.net/ajax/libs/daisyui/4.12.10/full.min.css" rel="stylesheet">
</head>
<body class="min-h-screen bg-gray-100 flex items-center justify-center p-4">
<div class="card w-full max-w-md bg-base-100 shadow-xl">
<div class="card-body">
<h2 class="card-title text-2xl font-bold mb-4">简单计算器</h2>
<div class="mb-4">
<input type="text" id="display" readonly
class="input input-bordered w-full text-right text-2xl font-mono bg-gray-50">
</div>
<div class="grid grid-cols-4 gap-2">
<button onclick="clearDisplay()" class="btn btn-error col-span-2">C</button>
<button onclick="appendToDisplay('/')" class="btn btn-secondary">/</button>
<button onclick="appendToDisplay('*')" class="btn btn-secondary">×</button>
<button onclick="appendToDisplay('7')" class="btn">7</button>
<button onclick="appendToDisplay('8')" class="btn">8</button>
<button onclick="appendToDisplay('9')" class="btn">9</button>
<button onclick="appendToDisplay('-')" class="btn btn-secondary">-</button>
<button onclick="appendToDisplay('4')" class="btn">4</button>
<button onclick="appendToDisplay('5')" class="btn">5</button>
<button onclick="appendToDisplay('6')" class="btn">6</button>
<button onclick="appendToDisplay('+')" class="btn btn-secondary">+</button>
<button onclick="appendToDisplay('1')" class="btn">1</button>
<button onclick="appendToDisplay('2')" class="btn">2</button>
<button onclick="appendToDisplay('3')" class="btn">3</button>
<button onclick="calculate()" class="btn btn-primary row-span-2">=</button>
<button onclick="appendToDisplay('0')" class="btn col-span-2">0</button>
<button onclick="appendToDisplay('.')" class="btn">.</button>
</div>
</div>
</div>
<script>
function appendToDisplay(value) {
document.getElementById('display').value += value;
}
function clearDisplay() {
document.getElementById('display').value = '';
}
function calculate() {
try {
const expression = document.getElementById('display').value;
const result = eval(expression);
document.getElementById('display').value = result;
} catch (error) {
document.getElementById('display').value = '错误';
}
}
</script>
</body>
</html>
更多关于HarmonyOS 鸿蒙Next简单计数器的实战教程也可以访问 https://www.itying.com/category-93-b0.html
2 回复
鸿蒙Next实现计数器
可以使用ArkTS开发。在EntryAbility.ts中定义计数器状态变量,使用@State装饰器实现数据绑定。UI部分通过Column、Row、Text和Button组件构建界面,Text显示计数值,Button绑定onClick事件触发增减操作。状态变化会自动更新UI,无需手动操作DOM。示例代码:
@Entry
@Component
struct Counter {
[@State](/user/State) count: number = 0
build() {
Column() {
Text(`${this.count}`)
.fontSize(50)
Row() {
Button('+')
.onClick(() => this.count++)
Button('-')
.onClick(() => this.count--)
}
}
}
}
更多关于HarmonyOS 鸿蒙Next简单计数器的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
这是一个基于HTML/JS的网页版计算器代码,不涉及HarmonyOS Next原生开发。如果要移植到HarmonyOS Next平台,建议使用ArkUI框架重新开发。以下是关键点:
- 在HarmonyOS Next中应该使用ArkTS语言开发
- 界面布局建议使用Column/Row等ArkUI组件
- 计算逻辑可以保留但需要改为TypeScript实现
- 避免使用eval()函数,存在安全隐患
- 样式系统使用HarmonyOS的样式规范而非Tailwind CSS
这个计算器示例更适合作为Web应用,如果要开发原生HarmonyOS应用,建议参考官方文档使用ArkUI框架重新实现。