第一步
新建一个组件,命名为item.vue(命名只是举例)
HTML部分:
<template>
<view class="content">
<view>{{item}}</view>
<view @click="indexClick(index)">{{index}}</view>
<view>{{str}}</view>
<view>{{title}}</view>
</view>
</template>
JS部分:
<script>
export default {
//props,是父组件/页面传进来的参数
props: {
item:{
type:Object, //参数的类型
default:{} //参数的默认值
},
index:{
type:Number,
default:0
},
str:{
type:String,
default:''
},
},
data() {
return {
title:'标题', //组件定义的参数也可以正常使用
}
},
methods:{
indexClick(index){
this.$emit('update',index)
//update是触发父组件的方法
//index是传递到父组件的值
},
childMethod(){
//父组件调用子组件的方法
}
}
}
</script>
第二步
新建一个index.vue页面
HTML部分:
<view class="dev">
<item ref="main" :item="item" :index="index" :str="str" @update="update"></item>
<view @click="dataAction">使用子组件的事件</view>
</view>
JS部分:
<script>
import item from '@/components/item.vue' //路径要对应
export default{
components: {
item //定义组件
},
data(){
return{
item:{},
index:1,
str:'123'
}
},
methods:{
update(e){
console(e) //e是子组件传递过来的值,就是子组件的index
},
dataAction(){
this.$refs.main.childMethod()
//这是页面触发子组件的方法
//main是组件的ref
}
}
}
</script>
简单的封装一个组件就完成了!有什么不懂的,都可以问喔!
版权声明:本文为qq_43576866原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。