最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue自動(dòng)化表單實(shí)例分析

 更新時(shí)間:2018年05月06日 15:09:16   作者:CharlieLau  
本篇文章通過實(shí)例給大家分享了vue自動(dòng)化表單的操作方法以及相關(guān)的代碼做了描述,有興趣的朋友可以跟著學(xué)習(xí)下。

背景

B端系統(tǒng)表單較多,且表單可能含有較多字段
字段較多的表單帶來了大片HTML代碼
在大片HTML中,混雜著參數(shù)綁定、事件處理等邏輯,不利于維護(hù)
技術(shù)棧 Vue,Element(默認(rèn)表單布局)適合中后臺(tái)項(xiàng)目快速開發(fā)

目標(biāo)

通過json配置快速生成表單的vue plugin。

設(shè)計(jì)目標(biāo)

  1. 減少html 重復(fù)片段
  2. 表單字段組件可擴(kuò)展
  3. 事件、聯(lián)動(dòng)通過eventbus 解耦
  4. 校驗(yàn)可擴(kuò)展
  5. 表單布局可自定義
  6. 可視化配置

大概方案設(shè)計(jì)

使用

安裝

npm install charlie-autoform charlie-autoform_component_lib

源碼:https://charlielau.github.io/autoform/#/component/autoform

引入插件

import AutoForm from 'charlie-autoform';
import AutoForm_component_lib from 'charlie-autoform_component_lib';

Vue.use(AutoForm);
Vue.use(AutoForm_component_lib);

基本使用

demo.vue

<template>
 <div>
  <auto-form ref="tagForm1" :model="model1" :fields="fields1" :layout="layout">
   <el-form-item class="clearfix">
   <el-button type="primary">立即創(chuàng)建</el-button>
   <el-button>取消</el-button>
   </el-form-item>
  </auto-form>
 </div>
</template>
<script>
 export default {
 data() {
  return {
  model2: {
   name: '',
   type: []
  },
  layout2: {
   align: 'left',
   labelWidth: '100px',
   custom: false, //是否自定義布局
   inline: true //是否內(nèi)聯(lián)
  },
  fields2: [
   {
   key: 'name',
   type: 'input',
   templateOptions: {
    label: '審批人'
   }
   },
   {
   key: 'region',
   type: 'select',
   templateOptions: {
    label: '活動(dòng)區(qū)域',
    placeholder: '請(qǐng)選擇活動(dòng)區(qū)域',
    options: [
    {
     label: '區(qū)域一',
     value: 'shanghai'
    },
    {
     label: '區(qū)域二',
     value: 'beijing'
    }
    ],
    validators:[ //校驗(yàn)
    // {required:true,message:'必填'}
    // ""
    ]
   }
   }
  ]
  };
 }
 };
</script>

最終效果

添加自定義組件或者組件目錄

Vue.$autoform.RegisterDir(()=>require.context('./components/autoform', 'c'));//目錄
Vue.$autoform.Register(Vue,[Components...],{prefix: "c"}) //組件對(duì)象

cHello.vue

// PATH:/components/autoform/cHello.vue
<template>
 <div>
  <div>
   <p>基本的變量可以通過"mixins"獲取,這里有開發(fā)組件需要的一些變量</p>
   <p>自定義子組件:Hello</p>
   <p>當(dāng)前field: {{field}}</p>
   <p>整個(gè)model: {{model}}</p>
   <p>當(dāng)前model: {{model[field.name]}}</p>
   <p>layout: {{layout}}</p>
   <p>字段相關(guān)配置to: {{to}}</p>
  </div>
 </div>
</template>

<script>
 import {baseField} from "charlie-autoform";
 export default {
  mixins: [baseField],
  name: 'cHello',
  data () {
   return {};
  },
  methods: {},
  mounted(){
   //this.eventBus 事件總線
  }
 };
</script>

成果

目前應(yīng)用再多個(gè)系統(tǒng)

定性: 維護(hù)成本降低、關(guān)注點(diǎn)分離
定量:表單開發(fā)效率提升50%

源碼:https://github.com/CharlieLau/autoform

相關(guān)文章

  • Vue-Router在Vue2和Vue3中的使用示例詳解

    Vue-Router在Vue2和Vue3中的使用示例詳解

    這篇文章主要介紹了Vue-Router在Vue2和Vue3中的使用,本文通過示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • vue語法之拼接字符串的示例代碼

    vue語法之拼接字符串的示例代碼

    本篇文章主要介紹了vue語法之拼接字符串的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-10-10
  • Vue-cli3.X使用px2 rem遇到的問題及解決方法

    Vue-cli3.X使用px2 rem遇到的問題及解決方法

    這篇文章主要介紹了Vue-cli3.X使用px2rem遇到的問題及解決方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-08-08
  • 基于Vue3實(shí)現(xiàn)一個(gè)小相冊(cè)詳解

    基于Vue3實(shí)現(xiàn)一個(gè)小相冊(cè)詳解

    這篇文章主要為大家詳細(xì)介紹了如何基于Vue3實(shí)現(xiàn)一個(gè)小相冊(cè)效果,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-12-12
  • 如何解決uni-app編譯后?vendor.js?文件過大

    如何解決uni-app編譯后?vendor.js?文件過大

    這篇文章主要介紹了如何解決uni-app編譯后?vendor.js?文件過大的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • 優(yōu)選七個(gè)用于vue開發(fā)的JS庫

    優(yōu)選七個(gè)用于vue開發(fā)的JS庫

    這篇文章主要介紹了JavaScript優(yōu)選七個(gè)用于vue開發(fā)庫,借助開源庫加速Vue項(xiàng)目的開發(fā)進(jìn)度是現(xiàn)代前端開發(fā)比較常見的方式,平常收集一些JavaScript庫介紹,在遇到需要的時(shí)候可以信手拈來
    2023-02-02
  • spring-cloud-stream的手動(dòng)消息確認(rèn)問題

    spring-cloud-stream的手動(dòng)消息確認(rèn)問題

    這篇文章主要介紹了spring-cloud-stream的手動(dòng)消息確認(rèn)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • 第一次接觸神奇的前端框架vue.js

    第一次接觸神奇的前端框架vue.js

    第一次接觸神奇的vue.js,主要了解一下v-model、v-if、v-else、v-show、v-for等,感興趣的小伙伴們可以一起學(xué)習(xí)一下
    2016-12-12
  • Vue移動(dòng)端右滑屏幕返回上一頁附源碼下載

    Vue移動(dòng)端右滑屏幕返回上一頁附源碼下載

    這篇文章主要介紹了Vue移動(dòng)端右滑屏幕返回上一頁,本文結(jié)合實(shí)例給大家介紹的非常詳細(xì),并附有源碼下載,需要的朋友可以參考下
    2019-06-06
  • vue+canvas實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)從上到下刷新瀑布圖效果(類似QT的)

    vue+canvas實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)從上到下刷新瀑布圖效果(類似QT的)

    這篇文章主要介紹了vue+canvas實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)從上到下刷新瀑布圖效果(類似QT的),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04

最新評(píng)論

明溪县| 聂拉木县| 上思县| 澄江县| 克东县| 广州市| 鹿邑县| 秦皇岛市| 梅河口市| 深圳市| 永嘉县| 石狮市| 淄博市| 双鸭山市| 太和县| 嫩江县| 东丽区| 桃园市| 咸阳市| 资中县| 北碚区| 启东市| 阿鲁科尔沁旗| 崇明县| 三江| 昌江| 华容县| 抚宁县| 鄂州市| 女性| 桐梓县| 南平市| 哈巴河县| 昌吉市| 赤壁市| 崇文区| 嘉黎县| 宁乡县| 汪清县| 比如县| 永济市|