中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vue如何實現公共方法抽離

發布時間:2020-08-01 09:17:40 來源:億速云 閱讀:194 作者:小豬 欄目:開發技術

這篇文章主要為大家展示了vue如何實現公共方法抽離,內容簡而易懂,希望大家可以學習一下,學習完之后肯定會有收獲的,下面讓小編帶大家一起來看看吧。

demo:制作一個點擊按鈕增加或者減少數字

現在vue組件內部測試一下功能

<template>
<div class="all">
<p>還未抽離</p>
<button @click="SubNum()">-</button>
<input type="number" v-model="number">
<button @click="AddNum()">+</button>
</div>
</template>

<script>
export default {
data() {
return {
number: 0
};
},
methods: {
SubNum() {
this.number--;
if (this.number <= 0) {
this.number = 0;
}
},
AddNum() {
this.number++;
if (this.number > 10) {
this.number = 10;
}
}
}
};
</script>

vue如何實現公共方法抽離

效果還可以,至少方法是對的,接下來進行方法抽離和傳送參數

首先新建一個js文件 common.js

用es6的export default將方法導出

export default {
AddNum:function(){
console.log(1)
},
SubNum:function(){
console.log(2)
}
}

在main.js中用import將文件導入

import Common from './common'

聲明全局common

Vue.prototype.common = Common

現在組件內只剩button和input,方法已經剪切出去

<template>
<div class="all">
<p>即將抽離</p>
<button @click="common.SubNum()">-</button>
<input type="number" v-model="number">
<button @click="common.AddNum()">+</button>
</div>
</template>

<script>
export default {
data() {
return {
number: 0
};
},
methods: {}
};
</script>

<style lang="scss" scoped type="text/css">
</style>

點擊打印1或者2

vue如何實現公共方法抽離

證明方法是行得通的,現在將組件內的參數傳送到方法里

傳參通過鉤子函數內傳過去,因為要綁定點擊事件,所以直接在methods定義一個方法

<template>
<div class="all">
<p>已經抽離</p>
<button @click="add(booleans)">-</button>
<input type="number" v-model="number">
<button @click="add(!booleans)">+</button>
</div>
</template>

<script>
export default {
data() {
return {
number: 0,
booleans: false
};
},
mounted() {},
methods: {
//判斷點擊的是加還是減
add(booleans) {
this.number = this.common.func(this.number,booleans);
}
}
};
</script>

<style lang="scss" scoped type="text/css">
</style>

這時公共方法已經簡化,這樣的話 在組件中看的比較簡潔

export default {
func(num,booleans){
if(booleans){
num++
if(num>=10){
return 10
}
}else{
num--
if(num<=0){
return 0
}
}
return num
}
}

vue如何實現公共方法抽離

<--------文末------------>

有一個坑

<button @click="common.SubNum(number)">-</button>
<input type="number" v-model="number">
<button @click="common.AddNum(number)">+</button>
//

export default {
AddNum:function(num){
num++
if(num>=10){
return 10
}
console.log(num)
return num
},
SubNum:function(num){
num--
if(num<=0){
console.log(num)
return 0
}
return num
}
}

這個是剛開始抽離方法 直接在@click內傳參

但是點擊事件并沒有將input的內容修改

我的理解是只是將參數傳到方法里 但是方法改變參數時并未改變input綁定的this.number

以上就是關于vue如何實現公共方法抽離的內容,如果你們有學習到知識或者技能,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

卓资县| 丹凤县| 绥德县| 龙泉市| 民权县| 蓝田县| 瑞丽市| 灵武市| 六盘水市| 凤凰县| 信丰县| 中超| 深圳市| 太保市| 沂南县| 白山市| 通山县| 临夏县| 永昌县| 龙州县| 岑溪市| 什邡市| 油尖旺区| 葫芦岛市| 延寿县| 红桥区| 尼玛县| 易门县| 武陟县| 通化县| 汉阴县| 莱西市| 墨玉县| 广州市| 和田县| 武冈市| 弋阳县| 阿巴嘎旗| 南郑县| 四平市| 陇西县|