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

高端网站设计开发免费网页下载

高端网站设计开发,免费网页下载,大学生网站策划书说明书,wordpress后台使用教程目录 第一版单个表单实现功能并一步步优化公共方法抽离 mixins 混入终版 form1 和 form2 组件实现 第一版单个表单实现功能并一步步优化 通过一步步代码的优化,实现清空重置功能,尽量做到抽离后,可以直接复用,不需要修改任何变量名…
目录
  • 第一版单个表单实现功能并一步步优化
  • 公共方法抽离 mixins 混入
  • 终版 form1 和 form2 组件实现

第一版单个表单实现功能并一步步优化

通过一步步代码的优化,实现清空重置功能,尽量做到抽离后,可以直接复用,不需要修改任何变量名

先实现一版,单个表单组件的清空和重置功能,此时 form1 组件可以实现parent.vue父组件中调用 form1 和 form2

<template><div><form1 /><hr /><form2 /></div>
</template>
<script>import form1 from "@/components/form1.vue";import form2 from "@/components/form2.vue";export default {components: {form1,form2,},};
</script>

form1.vue

<template><div>用户名:<input type="text" v-model="form1.username" /> 昵称:<inputtype="text"v-model="form1.nickname"/><button @click="clean">清空</button><button @click="recover">重置</button></div>
</template>
<script>export default {created() {// 模拟发送请求 更改数据setTimeout(() => {this.form1 = { username: "admin", nickname: "echo" };this.original = JSON.parse(JSON.stringify(this.$data)); // 备份数据}, 1000);},data() {return {form1: { username: "", nickname: "" },};},methods: {clean() {// 最容易想到的实现 1. 属性名固定不利于复用和维护//   this.form1 = {//     username: "",//     nickname: "",//   };//   框架提供了this.$option 可以获取到data中定义的属性//   this.form1 = this.$options.data().form1; // 进阶:2. 可以做到清空,但不建议,避免直接操作自定义的属性,便于方法抽离和复用//   this.$data = this.$options.data(); // 报错:避免修改根实例的data属性的指向,可以通过覆盖属性来替换Object.assign(this.$data, this.$options.data()); // 最终 3. 使用覆盖属性,而不是直接改变对象的指向},recover() {//   this.form1 = JSON.parse(JSON.stringify(this.original)); // 最容易想到的实现 1. 避免直接操作自定义的属性//   this.$data = JSON.parse(JSON.stringify(this.original)); // error 不能修改根实例的data属性的指向Object.assign(this.$data, JSON.parse(JSON.stringify(this.original))); // 最终 2. 使用覆盖属性,},},};
</script>

公共方法抽离 mixins 混入

如果 form2 中,同样想要实现 form1 中的清空和重置功能,就可以将公共的部分抽取成mixins进行混入

抽离的公共方法文件formOperation.js,(此文件中取消了优化过程和注释)

export default {methods: {save() {this.original = JSON.parse(JSON.stringify(this.$data));},clean() {Object.assign(this.$data, this.$options.data());},recover() {Object.assign(this.$data, JSON.parse(JSON.stringify(this.original)));},},
};

终版 form1 和 form2 组件实现

此时 form1 中的代码简化为:

<template><div>用户名:<input type="text" v-model="form1.username" /> 昵称:<inputtype="text"v-model="form1.nickname"/><button @click="clean">清空</button><button @click="recover">重置</button></div>
</template>
<script>import formOperation from "../mixins/formOperation";export default {mixins: [formOperation],created() {setTimeout(() => {this.form1 = { username: "admin", nickname: "echo" };this.save();}, 1000);},data() {return {form1: { username: "", nickname: "" },};},};
</script>

此时 form2 中的代码简化为:其中表单数据中的属性名可以随意定义,而抽取的公共方法,不需要进行任务的修改,同样可以实现上述功能

<template><div>用户名:<input type="text" v-model="form2.a" /> 昵称:<inputtype="text"v-model="form2.b"/><button @click="clean">清空</button><button @click="recover">重置</button></div>
</template>
<script>import formOperation from "../mixins/formOperation";export default {mixins: [formOperation],created() {setTimeout(() => {this.form2 = { a: "test", b: "yya" };this.save();}, 1000);},data() {return {form2: { a: "", b: "" },};},};
</script>
http://www.yayakq.cn/news/731430/

相关文章:

  • 学校如何建网站网页设计购物网站模板
  • 0基础学网站开发怎么看网站室哪做的
  • 最新网站信息方案设计评分标准
  • 湖北专业网站建设口碑好wordpress 判断版本号
  • 查询网站到期时间手机app开发成本
  • html5的网站有哪些上海广告公司电话
  • 商城网站建设如何wordpress插件wp
  • 快速网站建设价格python官网
  • 百度的网站网址网站建设运营策划书
  • 网站建设导向网站建设分几个阶段
  • 网站空间的控制面板首页网站建设维护的知识
  • 携程网站建设目的北京发布会直播回放
  • 钰鸣厦门网站建设做渔家乐推广的有哪些好网站
  • 工作做ppt课件的网站在阿里云里网站建设的步骤过程
  • 成都网站建设推广教师网络培训和服务平台
  • 苏州找工作网站有哪些谷歌做新媒体运营的网站
  • 网站关键词优化办法公司网站站建设协议
  • 怎么提高网站的百度收录旅游网站建设有哪些不足
  • 贵州省住房和城乡建设厅网站首页织梦装修设计网站模板
  • 有域名如何做免费网站做网站需要会什么编程
  • 做电商网站的上海公司店面设计多少钱一个平方
  • 百度付费推广的费用百度seo优化技巧
  • 阿里云虚拟主机网站营销推广方案案例
  • 贵阳58同城做网站公司百度投诉电话
  • 最新公司起名大全免费长沙seo网站排名优化公司
  • 网站更新内容wordpress指定ip登陆
  • 成都郫县网站建设关于网站建设外文文献
  • 公司网站建设需要注意的地方网站建设的开发的主要方法
  • 电商网站建设讯息网站栏目建设图
  • 视频播放网站模板荆州 网站建设