中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

Vue中如何使用component組件-創(chuàng)新互聯(lián)

Vue中如何使用component組件,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

創(chuàng)新互聯(lián)公司-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性?xún)r(jià)比天柱網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式天柱網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋天柱地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴(lài)。

 內(nèi)置的組件component

場(chǎng)景

這里通過(guò)一個(gè)業(yè)務(wù)場(chǎng)景來(lái)闡述vue內(nèi)置component組件的應(yīng)用。 如圖所示,這里展示經(jīng)典注冊(cè)頁(yè)面,注冊(cè)分為郵箱注冊(cè)和手機(jī)注冊(cè),彈窗頂部有標(biāo)簽可以切換注冊(cè)類(lèi)型,中間是注冊(cè)表單信息,郵箱注冊(cè)和手機(jī)注冊(cè)有著不一樣的表單內(nèi)容,底部是注冊(cè)按鈕以及其他操作。 經(jīng)過(guò)分析手機(jī)注冊(cè)界面與郵箱注冊(cè)除了中間的表單內(nèi)容不一致之外,其他的界面內(nèi)容是一樣的。

Vue中如何使用component組件

實(shí)際項(xiàng)目代碼設(shè)計(jì)中,為了保證復(fù)用性和可維護(hù)性,是會(huì)有一些可行的方案。這里我們采用vue內(nèi)置的component組件來(lái)實(shí)現(xiàn)這一點(diǎn)。

核心代碼實(shí)現(xiàn)

頂部tab切換的時(shí)候,type值發(fā)生改變,對(duì)應(yīng)的表單的組件也發(fā)生了變化

<template>
 <div>
	<a href="javascript:;" rel="external nofollow" rel="external nofollow" @click.prevent="handleCloseBtnClick"></a>
	<div>
	 <h4>新用戶(hù)注冊(cè)</h4>
	 <div>
		<span :class="{active: type === 'mobileForm'}" @click="type = mobileForm">手機(jī)注冊(cè)</span>
		<span :class="{active: type === 'emailForm'}" @click="type = emailForm">郵箱注冊(cè)</span>
	 </div>
	</div>
	<component :is="type" ref="form">
	 <button @click="handleRegisterBtnClick">注冊(cè)</button>
	 <div ><span ><span>注冊(cè)視為同意</span><a> 《法律條款和隱私說(shuō)明》</a></span></div>
	 <div><span>已有賬號(hào)<a href="javascript:;" rel="external nofollow" rel="external nofollow" @click.prevent="handleLoginBtnClick">直接登入>></a></span></div>
	</component>
 </div>
</template>
<script>
 export default {
 	methods: {
		handleRegisterBtnClick () {
		 	this.$refs.form.validateData().then(() => {
				this.$refs.form.getFormData()
			})
		 }
	}
 }
</script>

mixins混合

用Vue內(nèi)置component組件情況下,一般實(shí)際被渲染的組件具有一定的共性,比如相同的屬性,相同的方法或者相同的初始化銷(xiāo)毀過(guò)程。比如目前這個(gè)場(chǎng)景中郵箱表單和手機(jī)表單都具有校驗(yàn)方法(validateData)和獲取表單數(shù)據(jù)方法(getFormData)。 這種情況下可以使用vue提供的混合的功能。進(jìn)一步抽離 mixins.js

export default {
 methods: {
  validateData() {
   return Promise.resolve()
  },
  getFormData() {
   return {}
  }
 }
}

email-form.vue

<script>
import minx from './mixins'
export default {
 mixins: [mixins],
 methods: {
  getFormData() {
   return { email: 'example@example.com' }
  }
 }
}
</script>

如果有自定義的需求,可以重寫(xiě)mixins中的方法。

表格的應(yīng)用

在管理后臺(tái)項(xiàng)目中,表格經(jīng)常會(huì)被用到。我們希望表格的td是文本、進(jìn)度條、checkbox等等,且希望通過(guò)傳一個(gè)json配置就可以渲染出。使用vue內(nèi)置的component組件可以起到很贊的作用。

Vue中如何使用component組件 

比如這樣的一個(gè)table使用方式

<template>
 <vue-table ref="table" :columns="columns" :datum="datum"></vue-table>
</template>
<script>
export default {
  data () {
   return {
    columns: [
     { title: 'ID', width: '30', dataKey: 'id' },
     { title: '進(jìn)度組件', dataKey: 'progress', render: { type: 'progress2', max: 100, precision: 2 } }
    ],
    datum: [{ id: '1', name: '進(jìn)度0', progress: 10 }]
   }
  }
 }
</script>

table中使用component的實(shí)現(xiàn)

<td v-for="column of columns">
	<component :is="`${TYPE_PRE}${columns.render.type}`" :row-data="rowData" :params="columns.render"></component>
</td>

表單的應(yīng)用

在管理后臺(tái)項(xiàng)目中,表單也經(jīng)常需要用到,我們也同樣希望表單的某一項(xiàng)是文本框,下拉框,時(shí)間選擇框,富文本等等等等,且希望通過(guò)傳一個(gè)json配置就可以渲染出。vue內(nèi)置的component組件可以依然可以實(shí)現(xiàn)這樣一個(gè)美好的愿景。

Vue中如何使用component組件 

比如這樣的一個(gè)form使用方式

<template>
  <c-form :cells="cells" ref="form">
   <button class="button is-primary" :class="{ 'is-disabled': isSubmitBtnDisabled }" @click.prevent="submit">提交</button>
  </c-form>
</template>
<script>
  export default {
  computed: {
   cells () {
    return [
     {
      field: 'name',
      label: '名稱(chēng)',
      type: 'textfield',
      attrs: { placeholder: '名稱(chēng)' },
      validate: { required: { message: '請(qǐng)輸入名稱(chēng)'} }
     },
     {
      field: 'enable',
      label: '啟用標(biāo)志',
      type: 'dropdown',
      extra: {options: [{ label: '啟用', value: 1 }, { label: '禁用', value: 2 }] }
     }
    ]
   }
  }
 }
</script>

form中使用component的實(shí)現(xiàn)

<form>
 <c-form-cell v-for="cell of cellList" :key="cell.field" :field="cell.field">
  <component
	 :is="`${TYPE_PRE}${cell.type}`"
	 :field="cell.field"
	 :attrs="cell.attrs"
	 :extra="cell.extra"
	 :validate="cell.validate"
	 :cells="cell.cells">
  </component>
 </c-form-cell>
</form>

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司的支持。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、網(wǎng)站設(shè)計(jì)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。

文章標(biāo)題:Vue中如何使用component組件-創(chuàng)新互聯(lián)
轉(zhuǎn)載來(lái)于:http://www.rwnh.cn/article4/pcjie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、品牌網(wǎng)站制作、標(biāo)簽優(yōu)化網(wǎng)站收錄、網(wǎng)站策劃、全網(wǎng)營(yíng)銷(xiāo)推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管
利辛县| 阿拉善左旗| 高碑店市| 清水河县| 凌云县| 大同县| 新和县| 正宁县| 嘉祥县| 上高县| 花垣县| 孝昌县| 竹溪县| 福泉市| 胶州市| 正阳县| 屏东市| 禹城市| 霍邱县| 白河县| 梁河县| 巫溪县| 镇远县| 西平县| 娄烦县| 股票| 聂荣县| 怀远县| 武鸣县| 水富县| 搜索| 大田县| 江孜县| 壤塘县| 南澳县| 宣恩县| 龙门县| 黔西县| 宝丰县| 环江| 额敏县|