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

vue自定義表單生成器form-create使用詳解

 更新時間:2019年07月19日 08:52:03   作者:返回主頁 xaboy  
這篇文章主要介紹了vue自定義表單生成器,可根據(jù)json參數(shù)動態(tài)生成表單,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

介紹

form-create 是一個可以通過 JSON 生成具有動態(tài)渲染、數(shù)據(jù)收集、驗證和提交功能的表單生成器。并且支持生成任何 Vue 組件。結(jié)合內(nèi)置17種常用表單組件和自定義組件,再復(fù)雜的表單都可以輕松搞定。

文檔 | github

演示項目: 開源的高品質(zhì)微信商城

功能

  • 自定義組件
    • 可生成任何Vue組件
    • 自帶數(shù)據(jù)驗證
    • 輕松轉(zhuǎn)換為表單組件
  • 通過 JSON 生成表單
  • 通過 Maker 生成表單
  • 強大的API,可快速操作表單
  • 雙向數(shù)據(jù)綁定
  • 事件擴展
  • 局部更新
  • 數(shù)據(jù)驗證
  • 柵格布局
  • 內(nèi)置組件17種常用表單組件

對比 1.x

  • 速度更快
  • 體積更小
  • 更強大的全局配置
  • 自定義組件更容易擴展
  • 更容易支持第三方 UI 庫
  • 更少的 bug

示例

通過 JSON 創(chuàng)建表單

通過 API 操作表單

@form-create包說明

名稱 說明
@form-create/iview iview 版表單生成器
@form-create/element-ui element-ui 版表單生成器
@form-create/core form-create 核心包
@form-create/utils form-create 工具包
@form-create/data 省市區(qū)多級聯(lián)動數(shù)據(jù)

使用

以element-ui版本為例介紹如何在項目中使用 form-create

安裝

npm i @form-create/element-ui

掛載

全局注冊

局部掛載

import formCreate form '@form-create/element-ui';

export default {
  components:{
    formCreate:formCreaet.$form()
  }
}

生成表單

<template>
  <form-create v-model="$f" :rule="rule" @on-submit="onSubmit"></form-create>
</template>
export default {
 data () {
  return {
   //表單實例對象
   $f:{},
   //表單生成規(guī)則
   rule:[
    {
     type:'input',
     field:'goods_name',
     title:'商品名稱'
    },
    {
     type:'datePicker',
     field:'created_at',
     title:'創(chuàng)建時間'
    }
   ]
  };
 },
 methods:{
   onSubmit(formData){
     //TODO 提交表單
   }
 }
};

效果

實例對象 $f

可以通過 $f 快速操作表單,例如:

  • $f.hidden:隱藏指定組件
  • $f.validate:驗證表單
  • $f.setValue:修改表單組件的值
  • $f.append:追加表單組件

自定義組件

生成

通過標簽生成

{
  type:'el-button',
  name: 'btn',
  props:{
    type:'primary',
    field:'btn',
    loading:true
  },
  children:['加載中']
}

通過模板生成

{
  type:'template',
  name:'btn'
  template:'<el-button :loading="loading">{{text}}<el-button>',
  vm: new Vue({
   data:{
    loading:true,
    text:'加載中'
   }
  })
}

轉(zhuǎn)換為表單組件

自定義組件轉(zhuǎn)換為表單組件后,可通過$f.formData,$f.getValue,$f.setValue,$f.disabled等方法快速操作組件,達到和內(nèi)置組件相同的效果

預(yù)定義

props

在自定義組件內(nèi)部通過props接收一下屬性

  • value 表單的值
  • disabled 組件的禁用狀態(tài)

例如:

vm = Vue({
 props:{
  value:String,
  disabled:Boolean   
 }
})

input 事件

通過input事件更新組件內(nèi)部的值

當(dāng)組件值發(fā)生變化后,通過 input 事件更新值.例如:

vm.$emit('input',newValue);

掛載自定義組件

要生成的自定義組件必須通過Vue.component方法掛載到全局,或者通過formCreate.component方法掛載

例如:

formCreate.component('TestComponent',component);

或者

Vue.component('TestComponent',component);

生成

表單組件必須定義field屬性

JSON

{
  type:'TestComponent',
  value:'test',
  field:'testField',
  title:'自定義組件'
}

Maker

formCreate.maker.create('TestComponent','testField','自定義組件').value('test')

示例

自定義計數(shù)器按鈕組件,獲取按鈕點擊數(shù).該組件的功能和內(nèi)置組件相同

formCreate.maker.template('<el-button @click="onClick" long :disabled="disabled">計數(shù)器-{{num}}</el-button>', new Vue({
 props:{
  //預(yù)定義
  disabled:Boolean,
  value:Number,
 },
 data: function () {
  return {
    num: this.value,
  }
 },
 watch:{
  value(n){
    this.num = n;
  }
 },
 methods: {
  onClick: function () {
    this.num++;
    //更新組件內(nèi)部的值
    this.$emit('input',this.num);
  },
 },
}), 'tmp', '自定義 title').value(100).props('disabled',false)

完整示例

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解Vue3中偵聽器watch的使用教程

    詳解Vue3中偵聽器watch的使用教程

    學(xué)過 vue2 的小伙伴們肯定學(xué)習(xí)過偵聽器,主要是用來監(jiān)聽頁面數(shù)據(jù)或者是路由的變化,來執(zhí)行相應(yīng)的操作,在 vue3里面呢,也有偵聽器的用法,功能基本一樣,本文就來為大家詳細講講
    2022-07-07
  • vue-router中query和params的區(qū)別解析

    vue-router中query和params的區(qū)別解析

    vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,適合用于構(gòu)建單頁面應(yīng)用,這篇文章主要介紹了vue-router中query和params的區(qū)別 ,需要的朋友可以參考下
    2022-10-10
  • vue3+Naive?UI數(shù)據(jù)表格基本使用方式詳解

    vue3+Naive?UI數(shù)據(jù)表格基本使用方式詳解

    這篇文章主要給大家介紹了關(guān)于vue3+Naive?UI數(shù)據(jù)表格基本使用方式詳?shù)南嚓P(guān)資料,Naive?UI是一個基于Typescript開發(fā)的針對Vue3開發(fā)的UI組件庫,由TuSimple(圖森未來)公司開發(fā)并開源,需要的朋友可以參考下
    2023-08-08
  • Vue.native如何將原生事件綁定到組件

    Vue.native如何將原生事件綁定到組件

    這篇文章主要介紹了Vue.native如何將原生事件綁定到組件問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • vscode中的vue項目報錯Property ‘xxx‘ does not exist on type ‘CombinedVueInstance<{ readyOnly...Vetur(2339)

    vscode中的vue項目報錯Property ‘xxx‘ does not exist on type ‘Combin

    這篇文章主要介紹了vscode中的vue項目報錯Property ‘xxx‘ does not exist on type ‘CombinedVueInstance<{ readyOnly...Vetur(2339),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • JointJS流程圖的繪制方法

    JointJS流程圖的繪制方法

    這篇文章主要為大家介紹了JointJS流程圖的繪制方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • vue2使用el-tag實現(xiàn)自定義菜單導(dǎo)航標簽

    vue2使用el-tag實現(xiàn)自定義菜單導(dǎo)航標簽

    這篇文章主要為大家詳細介紹了vue2如何使用el-tag實現(xiàn)自定義菜單導(dǎo)航標簽,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-12-12
  • 深入理解vue-class-component源碼閱讀

    深入理解vue-class-component源碼閱讀

    這篇文章主要介紹了深入理解vue-class-component源碼閱讀,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • Vue之Watcher源碼解析(1)

    Vue之Watcher源碼解析(1)

    這篇文章主要為大家詳細介紹了Vue源碼之Watcher的基礎(chǔ)知識,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • Vue實現(xiàn)指令式動態(tài)追加小球動畫組件的步驟

    Vue實現(xiàn)指令式動態(tài)追加小球動畫組件的步驟

    這篇文章主要介紹了Vue實現(xiàn)指令式動態(tài)追加小球動畫組件的步驟,幫助大家更好的理解和實用vue,感興趣的朋友可以了解下
    2020-12-12

最新評論

堆龙德庆县| 任丘市| 昭觉县| 渝北区| 襄城县| 永胜县| 盱眙县| 海晏县| 三门县| 图们市| 杂多县| 文成县| 长岛县| 青阳县| 长岭县| 城步| 厦门市| 卓资县| 扎赉特旗| 阿尔山市| 新泰市| 临朐县| 延庆县| 喀什市| 漠河县| 神木县| 绥江县| 旬邑县| 彭山县| 凤阳县| 威远县| 奉化市| 营山县| 黄浦区| 霍城县| 福鼎市| 辽宁省| 昭觉县| 宁河县| 弥渡县| 塔河县|