uniapp组件的创建和使用
创建组件文件夹
项目根目录下创建components
文件夹
创建组件文件
根目录下的组件文件夹如果只是h5和app的话,随便取名就行,例如components
文件夹
各大小程序可以参考如下官方给出的目录名
js
┌─wxcomponents 微信小程序自定义组件存放目录
│ └──custom.vue 微信小程序自定义组件
│
├─mycomponents 支付宝小程序自定义组件存放目录
│ └──custom.vue 支付宝小程序自定义组件
│
├─swancomponents 百度小程序自定义组件存放目录
│ └──custom.vue 百度小程序自定义组件
├─pages
│ └─index
│ └─index.vue
│
├─static
├─main.js
├─App.vue
├─manifest.json
└─pages.json
因为我这个项目要兼容微信小程序和h5以及app的,h5和app任意就行,微信小程序需要为wxcomponents
,因此我这里在根目录下创建wxcomponents
文件夹
右键wxcomponents
文件夹,点击新建组件,我这里起名叫mycomVue
点击创建即可,内容如下:
我这里是vue3版本的setUp语言,vue2的换成vue2的语法就好
js
<template>
<button @click="btnClick">点击向父组件发送数据</button>
<text>父组件传来的数据为:{{num}}</text>
</template>
<script setup>
import {
defineEmits,
defineProps
} from 'vue';
const props = defineProps(['num']) // 这里接收的是父组件向子组件发送的数据
// 子组件享父组件发送事件
const emit = defineEmits(['customClick']);
const btnClick = () => {
emit('customClick', '我是子组件');
};
</script>
<style>
</style>
页面引入
在pages/index/index.vue
使用该组件
js
<template>
<div>
<button @click="hahaha">跳转</button>
<!-- 给子组件传递数据num为1 -->
<mycomVue num="1" @customClick="customClick"></mycomVue>
</div>
</template>
<script setup>
import mycomVue from '../../wxcomponents/mycom.vue';
const customClick = (e)=>{
console.log('父组件接收到数据为:',e);
}
</script>
<style scoped>
</style>
然后运行到微信小程序和h5和app上面发现都可以兼容了