Vue 3 - daniel-qa/Vue GitHub Wiki
这一行代码 const { createApp } = Vue; 是用来从 Vue.js 库中解构出 createApp 方法。
解构赋值:这段代码使用了解构赋值的语法,从 Vue 对象中提取出 createApp 方法。这样,
你可以直接使用 createApp 而不需要每次都写 Vue.createApp。
createApp 方法:createApp 是 Vue 3 中用于创建 Vue 应用实例的方法。
通过调用 createApp,你可以将你的组件和应用逻辑绑定到特定的 HTML 元素上。
简化代码:使用解构赋值可以让代码更加简洁,提高可读性。
-
handClick function 的寫法
const handClick =() =>{
alert('按鍵被點擊了!');
message.value='按鍵被點擊';
}
- 宣告變數的的寫法(嚮應式變數)
const message = ref("按鍵未點擊");
- < script setup > 是 Vue 3 中引入的一种新的语法,可以更简洁地编写组件的逻辑。
组件的逻辑会被更直接地定义在 <script setup> 块中,而不需要使用 export default
<template>
<div>
<h1>{{ title }}</h1>
<button @click="increment">增加</button>
<p>计数: {{ count }}</p>
</div>
</template>
<script setup>
import { ref } from 'vue';
// 定义响应式变量
const title = '欢迎使用 Vue 3';
const count = ref(0);
// 定义方法
const increment = () => {
count.value++;
};
</script>
-
响应式数据:ref 创建的响应式数据在模板中使用时会自动更新。
-
虚拟节点:h 允许你在 JavaScript 中以编程的方式创建组件和元素,适用于需要动态生成的复杂情况。
Vue 3 中,h 函数用于创建虚拟节点(VNode), 可以在 JavaScript 直接构建组件和元素,而不需要依赖于模板。
h(type, props, children)
type:可以是一个 HTML 标签名(如 'div'、'span'),也可以是一个组件对象。
props:一个对象,包含传递给组件或元素的属性。
children:可以是一个 VNode、字符串或数组,表示子元素。
- 以下是一个使用 h 函数创建简单组件的示例:
vue
<template>
<div id="app"></div>
</template>
<script setup>
import { h, ref } from 'vue';
const count = ref(0);
const renderCounter = () => {
return h('div', { style: { textAlign: 'center' } }, [
h('h1', `计数: ${count.value}`),
h('button', {
onClick: () => count.value++,
style: { padding: '10px', fontSize: '16px' }
}, '增加')
]);
};
// 将生成的 VNode 渲染到 #app
const app = document.getElementById('app');
app.appendChild(renderCounter().el);
</script>
响应式:在这个例子中,count 是一个响应式变量,当它的值改变时,组件的视图会自动更新。
使用 h 创建结构:我们使用 h 函数来创建一个 div,其中包含一个标题和一个按钮。按钮的点击事件会增加计数。
在 JavaScript 中渲染:你可以在 JavaScript 中动态生成和操作 VNode,然后将其插入到 DOM 中。
- 優勢:
与逻辑分离:通过使用 h 函数,你可以将组件的逻辑和结构分开,这在某些情况下会使代码更清晰。
当需要在 JavaScript 中动态生成组件或元素时,很方便。