当前位置: 首页 > news >正文

湛江网站设计公司淘宝网店的seo主要是什么

湛江网站设计公司,淘宝网店的seo主要是什么,dz可以做旅游网站吗,网站建设捌金手指花总八之前 Vue3 只停留在理论&#xff0c;现在项目重构&#xff0c;刚好可以系统的实战一下&#xff0c;下面是封装了一个抽屉表单组件&#xff0c;直接在父组件中通过调用子组件的方法打开抽屉&#xff1a; 父组件&#xff1a; <template><div id"app"><…

之前 Vue3 只停留在理论,现在项目重构,刚好可以系统的实战一下,下面是封装了一个抽屉表单组件,直接在父组件中通过调用子组件的方法打开抽屉:

父组件:

<template><div id="app"><div @click="getChildValue">open</div><custom-formref="childRef":fields="fields":form="form":rules="rules":saveForm="saveForm"></custom-form></div>
</template><script setup>
import CustomForm from "@/components/CustomModelForm";
import { reactive } from "vue";const formData = reactive({form: {name: "",email: "",date: "",password: "",},fields: [{prop: "name",label: "Name",component: "el-input",props: { placeholder: "Enter your name" },},{prop: "email",label: "Email",component: "el-input",props: { placeholder: "Enter your email" },},{prop: "date",label: "Date",component: "el-date-picker",props: {placeholder: "Enter your date",format: "YYYY-MM-DD",valueFormat: "YYYY-MM-DD",},},{prop: "password",label: "Password",component: "el-input",props: { placeholder: "Enter your password", type: "password" },},],rules: {name: [{ required: true, message: "Please input your name", trigger: "blur" },],email: [{ required: true, message: "Please input your email", trigger: "blur" },],password: [{required: true,message: "Please input your password",trigger: "blur",},],},
});
const { form, fields, rules } = toRefs(formData);
const childRef = ref(null);function getChildValue() {childRef.value?.open();
}function saveForm() {console.log(form.value);
}
</script>

子组件:

<template><el-drawerv-model="drawer":title="title":size="width":before-close="resetForm"><el-form :model="form" :rules="rules" ref="customForm" label-width="auto"><el-form-itemv-for="field in fields":key="field.prop":label="field.label":prop="field.prop"><component:is="field.component"v-bind="field.props"v-model="form[field.prop]"/></el-form-item></el-form><template #footer><div style="flex: auto"><el-button type="primary" @click="submitForm">保存</el-button><el-button @click="resetForm">取消</el-button></div></template></el-drawer>
</template><script setup>
const props = defineProps({// 抽屉标题title: {type: String,default: "标题",},// 表单元素 JSONfields: {type: Array,required: true,},// 表单数据form: {type: Object,required: true,},// 表单校验规则rules: {type: Object,default: () => ({}),},// 设置抽屉宽width: {type: String,default: "30%",},// 保存表单方法saveForm: {type: Function,default: () => {},},
});const drawer = ref(false); // 控制抽屉显隐
const customForm = ref(null); // 表单 ref// 提交表单
const submitForm = () => {customForm.value.validate((valid) => {if (valid) {props.saveForm();resetForm();} else {console.log("error submit!!");return false;}});
};// 打开抽屉
function open() {drawer.value = true;
}// 关闭抽屉
const resetForm = () => {customForm.value.resetFields();drawer.value = false;
};defineExpose({open,
});
</script>

这里主要用来 ref 和 defineExpose,其中 ref 获取了子组件的实例,而 defineExpose 是一个用于在 <script setup> 语法糖中暴露组件内部的属性或方法给父组件的函数。通过使用 defineExpose,你可以控制哪些属性和方法可以被外部访问,从而增强组件的封装性和安全性。

http://www.fp688.cn/news/152942.html

相关文章:

  • 网站建设哈尔滨网站优化4指数平滑法
  • 怎么做下载网站吗石家庄新闻
  • 闲置服务器做网站挣钱武汉网络关键词排名
  • 平台网站建设需求武汉seo引擎优化
  • 微信官方网站公众平台适合员工的培训课程
  • wordpress编辑框经典台州seo公司
  • 炫酷网站有哪些2021年热门关键词
  • 企业官网网站优化公司网站推广途径和要点
  • 视频网站空间邀请注册推广赚钱的app
  • 闭站保护期间网站能够打开吗chatgpt网页
  • 电影网站标题怎么做流量多怎么做好网站营销推广
  • 网站备案和不备案的区别谷歌搜索引擎为什么打不开
  • 系统学做网站东莞seo建站优化哪里好
  • 做纱线的网站seo页面代码优化
  • 宿州网站建设多少钱百度经验登录入口
  • 大连哪家网站做的好广告做到百度第一页
  • 怎么用dw做博客网站网站人多怎么优化
  • 成都优化网站哪家公司好班级优化大师下载安装
  • 51自学网个人seo外包
  • 怎么做婚介网站免费收录网站推广
  • 广东广州自己建网站公司吸引人的软文标题
  • 厦门35网站建设公司新手怎么做网页
  • 马鞍山网站建设设计seo搜索引擎推广
  • 百度手机网页南昌seo排名优化
  • 本地做网站教程方象科技的服务范围
  • 天府新区规划建设国土局网站河南做网站优化
  • 龙港做网站店铺网站运营怎么做
  • 衡水移动网站建设报价seo关键词排名实用软件
  • 深圳网站建设公司简介软文推广多少钱一篇
  • 网站备案号省份南昌关键词优化软件