摘要:業(yè)務背景是,在的前端項目中加入作為組件。但隨著需要登錄的頁面的增多,多個頁面都需要添加相同的,,以及前端登錄邏輯,所以在原先的項目中添加了,將重復的添加的代碼加入到了文件中,然后通過方法將對象掛載到某個的節(jié)點上。
業(yè)務背景是,在jq的前端項目中加入Vue作為組件。
原本的登錄功能是每個頁面加一個登錄彈窗(手機號+驗證碼驗證登錄),然后發(fā)ajax請求到后端,登錄成功后再進行一些操作。
但隨著需要登錄的頁面的增多,多個頁面都需要添加相同的html,js,css以及前端登錄邏輯,所以在原先的項目中添加了vue,將重復的添加的代碼加入到了vue文件中,然后通過$mount方法將vue對象掛載到某個ID的dom節(jié)點上。這樣,就讓所有的頁面調(diào)用統(tǒng)一的登錄彈窗,執(zhí)行相同的js登錄代碼了,并且將登錄邏輯完全與頁面上的業(yè)務邏輯解耦了。
但后來需求又有了新的變化,原本loginForm 組件只是一個用來登錄的彈窗,但有一個頁面PM同學卻希望不用執(zhí)行驗證登錄邏輯,只要輸入手機號,就可以直接直接執(zhí)行后端邏輯。
好吧。。。
我找了 Vue.set 方法解決了這個問題:
通過Vue.set方法向vue對象中的data設(shè)置一個響應式對象,使該對象能夠在初始化階段接收控制參數(shù) Vue.set(form.$data, "setData", data);
在不同的頁面向頁面?zhèn)鬏敳煌膮?shù)來控制彈窗顯示,以及后續(xù)是否執(zhí)行ajax請求邏輯。
調(diào)用登錄組件的js
var callBack = function () {//加入callback方法作為回調(diào)函數(shù),將業(yè)務代碼與登錄邏輯解耦 ... } var LoginComponent = require("loginForm.js");//獲得登錄組件 var setData = { "hideLogin": true, "callBack": callBack };//自定義數(shù)據(jù) LoginComponent.loadLoginForm(setData);//初始化登錄組件
loginForm.js
var Vue = require("vue"); var loginForm=require("loginForm.vue"); //引入一個附帶模板的vue文件 var login = exports; var form; /** * 初始化登錄組件 */ login.loadLoginForm = function (data) { if(form){ return; } form = newVue(loginForm); //new一個vue對象 if (typeof(data) !== "undefined") { //通過Vue.set方法對要顯示的對象進行控制,使該對象能夠在初始化階段接收控制參數(shù) Vue.set(form.$data, "setData", data);//向vue對象中的data設(shè)置一個響應式對象,繞過了限制 } form.$mount("#loginForm");//將對象綁定掛載到某個id上 };
html
loginForm.vue
/** 登錄彈窗 **/...
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/28412.html
摘要:哪吒別人的看法都是狗屁,你是誰只有你自己說了才算,這是爹教我的道理。哪吒去他個鳥命我命由我,不由天是魔是仙,我自己決定哪吒白白搭上一條人命,你傻不傻敖丙不傻誰和你做朋友太乙真人人是否能夠改變命運,我不曉得。我只曉得,不認命是哪吒的命。 showImg(https://segmentfault.com/img/bVbwiGL?w=900&h=378); 出處 查看github最新的Vue...
摘要:并總結(jié)經(jīng)典面試題集各種算法和插件前端視頻源碼資源于一身的文檔,優(yōu)化項目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快速搭建項目。 本文是關(guān)注微信小程序的開發(fā)和面試問題,由基礎(chǔ)到困難循序漸進,適合面試和開發(fā)小程序。并總結(jié)vue React html css js 經(jīng)典面試題 集各種算法和插件、前端視頻源碼資源于一身的文檔,優(yōu)化項目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快...
閱讀 3642·2021-10-08 10:04
閱讀 965·2019-08-30 15:54
閱讀 2248·2019-08-29 16:09
閱讀 1408·2019-08-29 15:41
閱讀 2341·2019-08-29 11:01
閱讀 1792·2019-08-26 13:51
閱讀 1104·2019-08-26 13:25
閱讀 1908·2019-08-26 13:24