泰小阿
泰小阿
1.在tip.js中定义一个变量tipInstance存储包含tip组件的子类,如果tipInstance不为undefined则直接export出tipInstance否则调用对应方法创建包含tip组件的子类。 ```js import Vue from 'vue' import Tip from './tipList.vue'//组件 let tip, initialization; Tip.newInstance = () => { //使用基础 Vue 构造器,创建一个包含tip组件的“子类” tip = Vue.extend(Tip) const messageInstance = new tip(); const...
2.通过一个包装组件tipBox实现,每次调用提示组件,实际是向tipBox中的一个list变量中添加一条数据,并制定唯一id。tipBox根据这个变量list来渲染tip组件。这样多个tip组件会以列表的形式渲染. ... add(options) { let name = getUid;//tip的唯一标识 let _options = Object.assign( {//默认属性 name: name }, options ); this.tipList.push(_options)//实现多次调用显示 }
3.  **可扩展部分** 1. 对于表单字段的校验规则 考虑进行合理自定义配置
问题四 1. 自定义表单中比较容易理解的比如字段的布局(在一行中的占比)、字段是否必填、字段显示类型、字段的默认值面向业务人员。其他面向代码层面的,比如校验规则,下拉框列表数据由开发人员控制。 2.对于适合开发给业务人员配置的选项,有设计开发了对应的配置页面,提供给业务人员进行表单配置。 3.背后的业务思考主要是因为公司在公车方面的市场竞争力主要是相对于个性化设计方面,这导致对于不同用户的多种需求,你都需要尽量满足他们,所以你可能需要大量分离代码,导致后期维护成本加重,而自定义表单渲染就是为了解决这个问题。
1/2.  3.根据前端需求 定制一个文档(关于客户端需要写的协议名和功能约定好参数、配置name等信息) 客户端处理好逻辑后将结果给回调函数。对应前端需要在需要的时候调用客户端的方法 并且规定好回调函数 4.客户端适配遇到过一些兼容性问题,ios居多 [ 1.ios自带输入法无法触发keyup事件,通过watch替代 2.ios移动端click事件300ms的延迟响应,使用fastclick 3.ios下input在输入的时候默认首字母大写,并且ios使用input标签必须指明type不然会失效, 4.微信安卓浏览器不能自动下载apk,window.location.reload()存在缓存。window.location.href=href+'随机数',如果是安卓微信浏览器添加图文提示用其他浏览器打开。 ] 5. [ 1.通过本地存储LocalStorage,对一些图标,用户信息之类的数据进行存储,用户提高下次打开的速度,增加用户体验。 2.因为原生app性能高于webapp对于用户体验要求高的页面考虑使用原生app开发 ]