50 lines
1.4 KiB
HTML
50 lines
1.4 KiB
HTML
|
<!DOCTYPE html>
|
||
|
<html lang="en">
|
||
|
|
||
|
<head>
|
||
|
<meta charset="UTF-8">
|
||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
|
<title>Document</title>
|
||
|
<!-- 1. 导入vue.js的脚本文件 -->
|
||
|
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
|
||
|
</head>
|
||
|
|
||
|
<body>
|
||
|
<div id="app">
|
||
|
<h1> {{ add() }}</h1>
|
||
|
<h1> {{ add() }}</h1>
|
||
|
<h1> {{ sum }}</h1>
|
||
|
<h1> {{ sum }}</h1>
|
||
|
</div>
|
||
|
</body>
|
||
|
<script>
|
||
|
// 将 Vue 对象中的createApp reactive 属性赋值给createApp reactive
|
||
|
const { createApp, reactive, ref, computed } = Vue; // 解构赋值语法
|
||
|
// 创建一个 Vue 的应用程序
|
||
|
createApp({
|
||
|
// 组合式API 的 setup 用于设置响应式数据和方法
|
||
|
setup() {
|
||
|
const data = reactive({
|
||
|
x: 10,
|
||
|
y: 20
|
||
|
})
|
||
|
// 无缓存的方法
|
||
|
const add = () => {
|
||
|
console.log("add");
|
||
|
return data.x + data.y
|
||
|
}
|
||
|
// 有缓存的方法——计算属性
|
||
|
// 计算属性: 根据依赖响应式数据变化决定是否重新计算
|
||
|
const sum = computed(() => {
|
||
|
console.log("sum");
|
||
|
return data.x + data.y;
|
||
|
})
|
||
|
// 返回数据
|
||
|
return {
|
||
|
data, add, sum
|
||
|
}
|
||
|
}
|
||
|
}).mount('#app') // 将 Vue 应用程序挂载到app元素上
|
||
|
</script>
|
||
|
|
||
|
</html>
|