
文章插圖
在Vue項(xiàng)目中我們經(jīng)常會(huì)將一些功能相似的且又常用的方法封裝在同一個(gè)js文件中 , 這樣可以方便項(xiàng)目的修改、維護(hù)、升級(jí)和代碼復(fù)用 。就比如我們常見的注冊(cè)功能 , 就需要大量的校驗(yàn)工作 。為了防止用戶誤操作、填寫錯(cuò)誤數(shù)據(jù)或者惡意提交數(shù)據(jù)等現(xiàn)象的發(fā)生 , 我們通常會(huì)在前端對(duì)用戶輸入的數(shù)據(jù)進(jìn)行必要的校驗(yàn)以確保數(shù)據(jù)的有效性 。效驗(yàn)是一個(gè)應(yīng)用很頻繁的的功能 , 為了方便我們通常將其整合到一個(gè)js中方便使用時(shí)直接調(diào)用 。
export導(dǎo)出函數(shù)這里我們定義一個(gè)validation.js文件用來定義常用的校驗(yàn)方法 , 為了讓該文件能被其他的Vue組件所調(diào)用我們需要使用export命令將這個(gè)函數(shù)拋出 , 這時(shí)候才能在組件中通過import命令引入外部js定義的函數(shù) 。導(dǎo)出函數(shù)可以有多種定義方式 , 下面是常見的3種寫法 。如果不想在最后進(jìn)行導(dǎo)出聲明 , 可以在定義函數(shù)的時(shí)候就用export關(guān)鍵詞進(jìn)行修飾 。
module.exports導(dǎo)出函數(shù)如果你不喜歡這種我們還可以使用module.exports來導(dǎo)出函數(shù) , module.exports不同在于它返回的是模塊對(duì)象本身(在javascript里面是一個(gè)類) , 而exports返回的是模塊函數(shù) 。module.exports 直接提供了暴露接口的方法 , 不需要再通過export命令將這個(gè)函數(shù)拋出 , 從代碼上可以看到module.exports更加簡(jiǎn)潔、方便 。
函數(shù)的引用在Vue中函數(shù)引入有兩種方式分別是 import和require , 具體的區(qū)別和使用可以參考文章 。這里我們直接來引入外部的js文件 , 然后在mounted中進(jìn)行調(diào)用測(cè)試功能是否被實(shí)現(xiàn) 。
總結(jié):個(gè)人比較喜歡使用module.exports來導(dǎo)出函數(shù) , import來導(dǎo)入函數(shù) 。用module.exports最主要就是寫法簡(jiǎn)潔、可以避免定義那么多的exports 。import加載模板時(shí)可以根據(jù)模塊的內(nèi)容、單個(gè)接口、接口、默認(rèn)值等多種方式載入 , 實(shí)現(xiàn)按需加載模塊模塊 。同時(shí)可以在編譯需要時(shí)引入模塊屬性 , 提高代碼的性能 。
以上內(nèi)容是小編給大家分享的 , 希望對(duì)大家有所幫助 , 如果大家有任何疑問請(qǐng)給我留言 , 小編會(huì)及時(shí)回復(fù)大家的 。更多Vue實(shí)戰(zhàn)技巧可以參考以下專欄:
為了方便學(xué)習(xí) , 這里還是附上源碼:
module.exports = {Phone (value) {let reg = /^[1][3, 4, 5, 6, 7, 8][0-9]{9}$/return reg.test(value)},Email (value) {let reg = /^[A-Za-z0-9u4e00-u9fa5]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$/return reg.test(value)},IdCard (value) {let reg = /^[1-9]d{5}(18|19|20|(3d))d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)d{3}[0-9Xx]$/return reg.test(value)}}//js引入方法import { Phone, Email, IdCard } from '../../script/validation'import { Phone, Email, IdCard } from '@/script/validation' var funs = require('../../script/validation')var funs = require('@/script/validation')import funs from '@/script/validation'//module.exports導(dǎo)出 //js使用方法mounted (){console.log(Phone('18564153817'))// import 引入console.log(funs.Phone('18564153817'))//require 引入}
以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請(qǐng)您及時(shí)就醫(yī)或請(qǐng)專業(yè)人士給予相關(guān)指導(dǎo)!
「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對(duì)您有所幫助:- 肚皮舞如此多嬌 引無數(shù)白領(lǐng)競(jìng)折腰
- 2021高考分?jǐn)?shù)線引爭(zhēng)議,預(yù)測(cè)高考小年竟成真 高考分?jǐn)?shù)線
- 目前最好用的網(wǎng)絡(luò)管理軟件 網(wǎng)管工具軟件有哪些
- 油性皮膚適合用的護(hù)膚品有哪些
- 攝影師拍到中國空間站凌日瞬間 引發(fā)了很多網(wǎng)友的討論
- 吸引力守則告訴你 女人別當(dāng)黃臉婆
- 拼多多新店如何引流?
- 毛豆早衰是怎么引起的
- 14款免費(fèi)又好用的音樂制作軟件 免費(fèi)的音樂app有哪些
- 外貿(mào)常用的幾個(gè)B2B網(wǎng)站 外貿(mào)b2b網(wǎng)站有哪些
