vite+vue3
yarn create vite my-vue-app --template vue
# 父页面 index.vue
<template>
<box :notice="'hello'" @mmmchange="mmmchange"></box>
</template>
<script setup>
import box as box from box.vue
const mmmchange = (e) => {
console.log(e)
}
</script>
# 组件 box.vue
<template>
<div @click="add"></div>
</template>
<script setup>
import { defineProps, defineEmits } from 'vue';
// 接受到父页面传递的参数,一下有两种接受方式
const props = defineProps({
notice: String,
multiple: {
type: Boolean,
default: false,
},
});
const emits = defineEmits(["mmmchange"]);
const add = () => {
emits("mmmchange", "test");
}
</script>
更多用法 : 参考链接
<el-form :model="form" :rules="rules" ref="form">
<el-form-item label="用户名" prop="username">这里其实也可以绑定rules.username</el-form-item>
</el-form>
<script setup>
const form = ref(null)
const form = reactive({
username: '',
})
const rules = {[
username: {
required: true,
message: "密码必填",
trigger: "blur",
}
]}
// 保存的时候验证
const save = () => {
refForm.value.validate((valid) => {
if(valid === false) {
ElMessage({
type: "error",
message: "请填写完整",
});
}
});
}
</script>
import { watch } from 'vue';
// 监听多个
watch(() => [props.images], (newValue, oldValue) =>{
data.selected = newValue[0];
}, { immediate: true, deep: true })