bak - daniel-qa/Vue GitHub Wiki
- 範例
App.vue
<template>
<HelloWorld msg="Welcome to Your Vue.js App"/>
</template>
<script>
import HelloWorld from './components/HelloWorld.vue'
</script>
HelloWorld.vue
<template>
<div class="hello">
<h1>{{ msg }}</h1>
</template>
script>
export default {
name: 'HelloWorld',
props: {
msg: String
}
}
</script>
这段代码是一个在 Vue 组件中使用子组件的示例,具体解释如下:
- <HelloWorld ... />
组件名:HelloWorld 是你定义的子组件,通常在父组件中引入并使用。
- msg="Welcome to Your Vue.js App"
属性(Prop):这里通过 msg 属性向 HelloWorld 组件传递了一个字符串 "Welcome to Your Vue.js App"。这个字符串可以在 HelloWorld 组件内使用。
类型:在 HelloWorld 组件中,你需要定义 props 以接收这个值。
在 Vue 中,參數的 mapping 通常是指如何將父組件傳遞的 props 對應到子組件的資料或方法。這個過程可以通過以下步驟來完成:
在父組件中,使用 v-bind 或 : 將資料傳遞給子組件。例如:
<template>
<child-component :user="userData"></child-component>
</template>
<script>
import ChildComponent from './ChildComponent.vue';
export default {
components: { ChildComponent },
data() {
return {
userData: {
name: 'John Doe',
age: 30
}
};
}
};
</script>
在子組件中,使用 props 選項來定義接收的參數。例如:
<template>
<div>
<h1>{{ user.name }}</h1>
<p>Age: {{ user.age }}</p>
</div>
</template>
<script>
export default {
props: {
user: {
type: Object,
required: true
}
}
};
</script>
在子組件的模板中,可以直接使用接收到的 props 進行渲染。