Vue執(zhí)行方法,方法獲取data值,設(shè)置data值,方法傳值操作
方法寫在methods中
v-on:click="run()"
@click="run()"
方法獲取data中的數(shù)據(jù)通過this.數(shù)據(jù)獲取
方法設(shè)置data中的數(shù)據(jù)通過this.數(shù)據(jù)=''設(shè)置
例如通過this.list=[1,2,3],設(shè)置list的值,讓頁面出循環(huán)list
可通過 @click="run('123')",將值傳到方法中
可通過 @click="run($event)",將事件對(duì)象傳到方法中,然后根據(jù)事件對(duì)象的e.srcElement設(shè)置點(diǎn)擊標(biāo)簽的屬性,也可以通過e.srcElement.dataset獲取自定義屬性
<template>
<div id="app">
{{msg}}
<button @click="run()">@click事件觸發(fā)</button>
<button v-on:click="runvon()">v-on:click事件觸發(fā)</button>
<button @click="getMsg()">獲取data.msg</button>
<button v-on:click="setMsg()">設(shè)置data.msg</button>
<ul>
<li v-for="item in list">{{item}}</li>
</ul>
<button @click="setList()">設(shè)置List的值</button>
<button @click="sendData('123')">方法傳值</button>
<button v-on:click="sendEvent($event)">傳遞事件對(duì)象</button>
<button @click="sendEventSet($event)">傳遞事件對(duì)象,并設(shè)置背景色</button>
<button data-a="啦啦啦" @click="sendEventData($event)">傳遞事件對(duì)象,并獲取自定義屬性</button>
</div>
</template>
<script>
export default {
name: 'app',
data () {
return {
msg: '123',
list:[]
}
},
methods:{
run(){
alert("@click事件觸發(fā)")
},
runvon(){
alert("v-on:click事件觸發(fā)")
},
getMsg(){
alert("我獲取到了msg"+this.msg);
},
setMsg(){
this.msg="我是設(shè)置后的值"
},
setList(){
for(var i = 0 ; i < 10 ; i++){
this.list.push(i)
}
},
sendData(a){
alert("穿過來的值是:"+a)
},
sendEvent(e){
console.log(e);
},
sendEventSet(e){
e.srcElement.style.background="red";
},
sendEventData(e){
alert(e.srcElement.dataset.a)
}
}
}
</script>
<style lang="scss">
</style>
補(bǔ)充知識(shí):Vue 兄弟組件通過事件廣播傳遞數(shù)據(jù)
非父子組件傳值
通過事件廣播實(shí)現(xiàn)非父子組件傳值
1.新建js,引入并實(shí)例化Vue
import Vue from 'vue' var VueEvent = new Vue(); export default VueEvent;
2.子組件A中引入VueEvent,并廣播事件
import VueEvent from '../model/VueEvent.js'
VueEvent.$emit('to-news',this.msg);
3.子組件B中引入VueEvent,并監(jiān)聽事件
import VueEvent from '../model/VueEvent.js'
VueEvent.$on('to-news',data=>{console.log(data);});
示例代碼
import Vue from 'vue' var VueEvent = new Vue(); export default VueEvent;
<template>
<div id="home">
<button @click="sendMsg()">我來觸發(fā)事件</button>
</div>
</template>
<script>
import VueEvent from "../models/VueEvent.js";
export default {
data() {
return {
msg: "我是Home的msg"
};
},
methods: {
sendMsg() {
VueEvent.$emit("tonews", this.msg);
}
}
};
</script>
<style>
</style>
<template>
<div id="news">
我來接受事件--{{msg}}
</div>
</template>
<script>
import VueEvent from "../models/VueEvent.js";
export default {
data() {
return {
msg: "我是News的msg"
};
},
mounted() {
VueEvent.$on("tonews", res => {
this.msg = res;
});
}
};
</script>
<style>
</style>
<template>
<div id="app">
<v-home></v-home>
<hr />
<v-news></v-news>
</div>
</template>
<script>
import Home from "./components/Home.vue";
import News from "./components/News.vue";
export default {
name: "app",
data() {
return {
msg: "Welcome to Your Vue.js App"
};
},
components: {
"v-home": Home,
"v-news": News
}
};
</script>
<style lang="scss">
</style>
以上這篇Vue執(zhí)行方法,方法獲取data值,設(shè)置data值,方法傳值操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue項(xiàng)目中定義全局變量的幾種常用方法總結(jié)
在項(xiàng)目中經(jīng)常有些函數(shù)和變量是需要復(fù)用,比如說網(wǎng)站服務(wù)器地址,從后臺(tái)拿到的用戶的登錄token,用戶的地址信息等,這時(shí)候就需要設(shè)置一波全局變量,這篇文章主要給大家介紹了關(guān)于Vue項(xiàng)目中定義全局變量的幾種常用方法的相關(guān)資料,需要的朋友可以參考下2023-12-12
mpvue小程序循環(huán)動(dòng)畫開啟暫停的實(shí)現(xiàn)方法
這篇文章主要介紹了mpvue小程序循環(huán)動(dòng)畫開啟暫停的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05
vue-cli如何關(guān)閉Uncaught?error的全屏提示
這篇文章主要介紹了vue-cli如何關(guān)閉Uncaught?error的全屏提示問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-04-04
Vue數(shù)據(jù)代理的實(shí)現(xiàn)流程逐步講解
通過一個(gè)對(duì)象代理對(duì)另一個(gè)對(duì)象中的屬性的操作(讀/寫),就是數(shù)據(jù)代理。要搞懂Vue數(shù)據(jù)代理這個(gè)概念,那我們就要從Object.defineProperty()入手,Object.defineProperty()是Vue中比較底層的一個(gè)方法,在數(shù)據(jù)劫持,數(shù)據(jù)代理以及計(jì)算屬性等地方都或多或少的用到了本函數(shù)2023-01-01
Vue+Element實(shí)現(xiàn)封裝抽屜彈框
這篇文章主要為大家詳細(xì)介紹了如何利用Vue和Element實(shí)現(xiàn)簡(jiǎn)單的抽屜彈框效果,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-06-06

