一個包含 vue 的 html - daniel-qa/Vue GitHub Wiki
- index.html
會寫在 log
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Vue 3 Demo</title>
<script src="https://unpkg.com/vue@3"></script>
</head>
<body>
<div id="app"></div>
<script>
const { createApp, ref } = Vue;
// 定义你的组件
const HelloWorld = {
template: `
<div class="hello">
<h1>欢迎来到 Vue 3!</h1>
<button @click="sayHello">点击我</button>
</div>
`,
setup() {
const sayHello = () => {
console.log('Hello, 世界!');
};
return { sayHello };
}
};
// 创建 Vue 应用并挂载
createApp(HelloWorld).mount('#app');
</script>
<style>
.hello {
text-align: center;
margin-top: 50px;
}
button {
padding: 10px 20px;
font-size: 16px;
cursor: pointer;
}
</style>
</body>
</html>
- 會顯示在頁面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Vue 3 Demo</title>
<script src="https://unpkg.com/vue@3"></script>
</head>
<body>
<div id="app"></div>
<script>
const { createApp, ref } = Vue;
// 定义你的组件
const HelloWorld = {
template: `
<div class="hello">
<h1>欢迎来到 Vue 3!</h1>
<button @click="sayHello">点击我</button>
<div v-if="logMessage" class="log">{{ logMessage }}</div>
</div>
`,
setup() {
const logMessage = ref('');
const sayHello = () => {
logMessage.value = 'Hello, 世界!';
console.log(logMessage.value);
};
return { sayHello, logMessage };
}
};
// 创建 Vue 应用并挂载
createApp(HelloWorld).mount('#app');
</script>
<style>
.hello {
text-align: center;
margin-top: 50px;
}
button {
padding: 10px 20px;
font-size: 16px;
cursor: pointer;
}
.log {
margin-top: 20px;
font-size: 16px;
color: #333;
}
</style>
</body>
</html>
- 說明
return { sayHello, logMessage }; 这行代码将 sayHello 方法和 logMessage 变量暴露给组件的模板。这意味着在组件的模板中,你可以使用 {{ logMessage }} 来显示日志消息,或者使用 @click="sayHello" 来触发 sayHello 方法。
模板访问:
当你在组件的模板中使用 {{ logMessage }} 时,Vue 会自动查找 setup 函数返回的属性,从而能够访问和显示日志信息。 通过 @click="sayHello" 触发按钮点击事件时,会调用 setup 函数中定义的 sayHello 方法。