1.子组件的名字是以大写字母开头
2.驼峰命名
1. 定义一个子组件
在src下面的components下面新建一个文件MovieItem.vue
//1.src/components/MovieItem.vue<template><div><img src="../images/bg.webp" alt=""><p>你好</p></div></template><script>export default {name:"MovieItem" //这个名字和组件名字要一致}</script><style scoped></style>
1.2.在App.vue中导入子组件
在父组件里面
import MovieItem from './components/MovieItem'
1.3.在components属性中注册
在父组件里面注册一下
export default {components:{MovieItem}}
1.4.在模板中使用
在父组件里面写,
<MovieItem v-for="item of movies" :key="item.id"></MovieItem>
也可以使用下划线使用
<movie-item ></movie-item>
2.父组件向子组件传值
//1.给父组件定义一个data属性,向子组件传递数据<template><div id="app"><MovieItem :data="item" v-for="item of movies" :key="item.id"></MovieItem></div></template>//2.在子组件的props属性中接收<script>export default {name:"MovieItem",props:{data:{type:Object}}}</script>//3.使用数据--在MovieItem.vue里面写<template><div><img :src="data.images.small" alt=""><p>{{data.title}}</p></div></template>
3.子组件自定义事件向父组件传参
//1.使用$emit方式自定义事件,向父组件传参<template><div><button @click="handleDelete(index)">删除</button></div></template><script>export default {name: "HomeTable",...methods:{handleDelete(index){this.$emit('deleteItem',index) //通过$emit传过去}}};</script>
//2.父组件接收子组件传递过来的事件参数<home-table :data="arr" @deleteItem="handleDelete"></home-table><script>import HomeTable from './components/HomeTable'export default {name: 'app',...methods:{...handleDelete(index){this.arr.splice(index,1)}}}</script>
*如果图片取不到
在public/index.html中输入:
