- 创建组件
- 函数式组件:
- 函数式组件是一个简单的 JavaScript 函数,它接收
props
(属性)作为参数并返回一个虚拟 DOM 节点。例如,创建一个简单的HelloWorld
函数式组件:import { h } from 'vue'; const HelloWorld = (props) => { return h('div', `Hello, ${props.name}!`); };
- 这里使用了
h
函数(它是createVNode
的别名)来创建一个<div>
元素,元素的内容是根据传入的props.name
属性动态生成的。 - 选项式组件:
- 选项式组件是一个包含多种选项的对象。例如,创建一个
MyComponent
选项式组件:
- 选项式组件是一个包含多种选项的对象。例如,创建一个
-
收起
javascript
复制
const MyComponent = { data() { return { count: 0 }; }, template: '<div @click="increment">{ { count }}</div>', methods: { increment() { this.count++; } } };
- 在这个组件中,
data
函数返回组件的数据对象,template
定义了组件的模板,methods
中定义了组件的方法。当用户点击<div>
元素时,会调用increment
方法,使count
的值加 1。 - 注册组件
- 全局注册:
- 可以在应用(
app
)级别进行全局注册。假设已经有一个Vue
应用app
,要全局注册上述的HelloWorld
组件:
- 可以在应用(
- 全局注册:
-
收起
javascript
复制
import { createApp } from 'vue'; const app = createApp({}); app.component('Hello-World', HelloWorld);
- 注册后,在应用的任何地方都可以使用
<Hello - World>
标签来引用这个组件。component
方法的第一个参数是组件的名称(注意这里使用了连字符命名法,在 HTML 中使用时要按照这种格式),第二个参数是组件本身。 - 局部注册:
- 在一个组件内部进行局部注册。例如,在一个父组件中使用局部注册来使用
MyComponent
:
- 在一个组件内部进行局部注册。例如,在一个父组件中使用局部注册来使用
-
收起
javascript
复制
import { defineComponent } from 'vue'; import MyComponent from './MyComponent.vue'; const ParentComponent = defineComponent({ components: { 'my-component': MyComponent }, template: '<my - component></my - component>' });
- 这里通过
defineComponent
函数定义了ParentComponent
,在components
选项中进行了局部注册。注册后的组件名称是my - component
(注意这里命名要符合 HTML 标签命名规范),然后在template
中就可以使用这个组件了。 - 使用组件
- 无论是全局注册还是局部注册的组件,使用方式类似。在模板中,使用组件的标签名来插入组件。例如,在一个 HTML 模板中使用全局注册的
Hello - World
组件:
- 无论是全局注册还是局部注册的组件,使用方式类似。在模板中,使用组件的标签名来插入组件。例如,在一个 HTML 模板中使用全局注册的
-
复制
<div id="app"> <Hello - World name="Vue3"></Hello - World> </div>
- 当组件被渲染时,会根据组件的定义生成相应的 DOM 结构。在函数式组件
HelloWorld
的例子中,会生成一个包含Hello, Vue3!
文本的<div>
元素。 -
收起
html
- 函数式组件是一个简单的 JavaScript 函数,它接收
- 函数式组件:
如何在 Vue3 中使用组件?
猜你喜欢
转载自blog.csdn.net/2301_78133614/article/details/143488302
今日推荐
周排行