日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

vue 數據操作相關總結

瀏覽:164日期:2022-10-18 17:21:50

vue中有很多有關數據的操作方法,比如父子組件數據的傳遞,子組件修改父組件數據,props,computed,watch,sync等,今天就來總結一下這些操作方法的使用

computed是計算屬性

computed是計算屬性:減少模板{{}}的復雜度。 在模板中放入太多的邏輯會讓模板過重且難以維護。對于任何復雜邏輯,你都應當使用計算屬性 把復雜的運算邏輯寫到computed的函數里面,再在模板里引用就使邏輯變得簡單明了了 使用方法: computed與data并列,將一系列操作封裝成一個方法,放到computed里,調用時直接寫方法名,不用加( )

new Vue({ el:'#app', data:{ user:{ email:'dong@qq.com', nickname:'oldUath', phone:'12812345678' } }, //計算屬性 computed:{ displayName(){ //返回一個結果 const user=this.user return user.nickname ||user.phone||user.email } }, template:` <div> {{displayName}} </div> `})watch偵聽器

watch:偵聽器:觀察Vue實例上的數據變動,只要指定的數據改變就會執行預定的函數 當需要在數據變化時執行異步或開銷較大的操作時;

watch使用方法一:

<div id='app'> {{msg}} <br> 改變了嗎? {{isChange}} <button @click='change'>改變</button> </div> new Vue({ el: '#app', data: { //這是第一層數據 msg:’欲窮千里目’, isChange:’No’, user:{ //這是第二層數據name:'oldUath',phone:’18312345678’ } }, watch:{ //只要msg改變,這個方法就會執行,第一層數據只需要寫 數據名(){}就可以 msg(val,oldVal){ this.isChange = ’Yes’ }, //第二層數據需要’’,’user.name’(){} ’user.name’(){ console.log(’user.name變了’) } }, methods:{ change(){ this.msg = ’更上一層樓’ } } })

注意:在vue里面如果把一個對象原封不動的再賦值給他,那么他的地址就變了

//obj:{a:’a’}obj.a+=’hi’//才是監聽obj時,因為obj地址沒有發生變化,所以不會執行監聽obj的事件

可以使用 deep:true這個是代表讓watch往深處監聽,值變了就相當于改變了

watch:{obj(){ handle(){console.log(’obj變了’) }, deep:true}使用方法二: vm.$watch(’監聽的變量’,調用的函數,{immediate:true})

與方法一的效果相同

const vm = new Vue({ el: '#app', data: { msg:’欲窮千里目’, isChange:’No’, user:{name:'oldUath',phone:’18312345678’ } }, methods:{ change(){ this.msg = ’更上一層樓’ } } }) vm.$watch(’msg’,function(){ console.log(’n變了’) },{immediate:true})父組件給子組件傳遞數據: Props

父組件要想給子組件傳入數據,需要在子組件種使用Props引入變量

父組件要給子組件出入 money='100'先在父組件種傳入

//在父組件調用子組件<Child :money='100'><Child>

再在子組件種引入數據,引入money這個變量

<template><div class='red'>+ {{money}}元 <button>花錢</button></div></template><script>export default {+ props:[’money’]}</script>

此時子組件只能使用父組件的數據,而不能修改

子組件修改父組件的數據(.sync原理)

組件不能直接修改props外部的數據

使用$emit進行修改

在子組件使用 $emit(‘參數1’,參數2)

當前實例繼承了eventBus,可以觸發一個事件

在子組件寫$emit,第一個參數是事件名,第二個參數是修改后的值

<!-- $emit()觸發一個事件,update:money是事件名 --><button @click='$emit(’update:money’,money-10)'>花錢</button>

在父組件使用 $event接受參數2;

$event就是接收子組件參數2返回的結果的

<!-- 傳給子組件一個money值,v-on是監聽子組件的update:money事件, $event獲取子組件事件的結果--> <Child :money='total' v-on:update:money='total = $event' />簡化結果: sync

父組件這一大段代碼太麻煩了,vue把它封裝成了一個修飾符

<Child :money.sync='total' />

子組件還是那樣寫

這個只解決了父子組件的通信問題,兄弟組件的通信問題呢?

兄弟組件通信:emit/emit/on

這種方法通過一個空的Vue實例作為中央事件總線(事件中心),用它來觸發事件和監聽事件,巧妙而輕量地實現了任何組件間的通信,包括父子、兄弟、跨級。當我們的項目比較大時,可以選擇更好的狀態管理解決方案vuex。 具體實現方式

var Event=new Vue(); Event.$emit(事件名,數據);//傳遞事件數據 Event.$on(事件名,data => {});//接受數據

舉個例子:A組件向C組件傳遞信息,ABC是相鄰組件

首先在A組件提供事件數據使用$emit,第一個參數是數據名,要與接收數據的on的第一個參數相同;第二個參數是數據

<template id='a'> <div> <h3>A組件:{{name}}</h3> <button @click='send'>將數據發送給C組件</button> </div></template><script>var Event = new Vue();//定義一個空的Vue實例var A = { template: ’#a’, data() { return { name: ’tom’ } }, methods: { send() { Event.$emit(’data-a’, this.name); } }}</script>

在C組件接受數據 $on,第一個參數是數據名,第二個參數用來接收數據

<template id='c'> <div> <h3>C組件:{{name}},{{age}}</h3> </div></template><script>var Event = new Vue();//定義一個空的Vue實例var C = { template: ’#c’, data() { return { name: ’’, age: '' } }, mounted() {//在模板編譯完成后執行 Event.$on(’data-a’,name => { this.name = name;//箭頭函數內部不會產生新的this,這邊如果不用=>,this指代Event }) }}</script>總結 父子之間傳遞數據用 props和$emit 兄弟之間傳遞數據用 $emit和$on 父組件向孫子組件傳遞數據使用 provide和inject

以上就是vue 數據操作相關總結的詳細內容,更多關于vue 數據操作的資料請關注好吧啦網其它相關文章!

標簽: Vue
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美国产美女| 亚洲日本在线观看视频| 欧美片网站免费| 亚洲精品中文字幕99999| 综合激情婷婷| 欧美日韩高清| 99成人在线| 日韩在线a电影| 蜜臀精品久久久久久蜜臀 | 日韩久久99| 日韩精品亚洲专区| 国产日韩欧美一区二区三区| 91成人在线网站| 日韩不卡手机在线v区| 亚洲精品欧美| 欧美伊人久久| 美女视频黄 久久| 国产精品久久久久蜜臀| 日韩av片子| 99精品网站| 日韩视频一区| 日本aⅴ精品一区二区三区| 国产精品sss在线观看av| 精品中文字幕一区二区三区四区| 久久精品日韩欧美| 欧美一区久久久| 91国语精品自产拍| 天堂成人免费av电影一区| 欧美中文日韩| 青草国产精品| 精品中文在线| 久久精品官网| 亚洲无线观看| 国产精品久久久久久妇女| 精品高清久久| 精品中文字幕一区二区三区av| 99国产成+人+综合+亚洲欧美| 亚洲精品欧美| 久久影院资源站| 99精品视频精品精品视频| 国产精品美女久久久| 久久国产乱子精品免费女| 国产成人1区| 激情久久久久久| 亚洲毛片在线免费| 国产一区二区三区久久久久久久久| 精品一区欧美| 欧美精品三级在线| 精品女同一区二区三区在线观看| 日韩免费av| 日韩在线卡一卡二| 国产一区丝袜| 亚洲一区二区三区高清不卡| 欧美在线91| 日韩成人亚洲| 日本一区福利在线| 鲁鲁在线中文| 亚洲狼人精品一区二区三区| 国产精品a级| 亚洲男女av一区二区| 国产乱人伦丫前精品视频| 国产99久久久国产精品成人免费| 亚洲精品观看| 日本在线啊啊| 日产欧产美韩系列久久99| a日韩av网址| 亚洲精品婷婷| 日韩电影免费网址| 午夜久久av| 欧美日中文字幕| 国产欧美一区二区精品久久久| 久久久蜜桃一区二区人| 911亚洲精品| 亚洲va在线| 国产精品对白久久久久粗| 亚洲欧美日韩高清在线| 麻豆精品少妇| 亚洲人妖在线| 久久精品国产亚洲夜色av网站 | 牛牛精品成人免费视频| 亚洲一区欧美二区| 91欧美在线| 国产日产一区| 另类激情亚洲| av资源亚洲| 国产视频一区二| 欧美美女一区| 国产一区二区三区精品在线观看| 亚洲精品黄色| 亚洲性色视频| 超碰在线99| 久久精品99国产国产精| 免费久久精品视频| 伊人久久大香线蕉av不卡| 久久三级毛片| 欧美日韩一视频区二区| 中文字幕亚洲精品乱码| 国产毛片一区| 亚洲国产专区| 在线看片国产福利你懂的| 国产精品宾馆| 蜜桃视频一区二区| 午夜精品婷婷| 少妇精品导航| 黑森林国产精品av| 精品一区二区三区中文字幕| 日本免费一区二区视频| 在线免费观看亚洲| 在线视频免费在线观看一区二区| 久久精品亚洲欧美日韩精品中文字幕| 美女视频免费精品| 国产精品一区二区中文字幕| 日韩国产在线观看| 视频一区日韩| 色狠狠一区二区三区| 伊人精品久久| 美女久久网站| 香蕉久久国产| 99国产精品久久久久久久| 成人av二区| 激情综合亚洲| 视频一区中文| 午夜久久99| 日韩中文欧美在线| 免费观看在线综合| 爽好久久久欧美精品| 天堂av在线一区| 亚洲一区欧美二区| 综合国产视频| 日本精品在线播放| 欧美亚洲人成在线| 日韩精品五月天| 日本免费一区二区视频| 欧美日韩精品一区二区三区视频 | 少妇高潮一区二区三区99| 亚洲精品伊人| 欧美日韩a区| 国产精品白浆| 精品国内亚洲2022精品成人| 国产精品成人一区二区不卡| 日韩在线观看| 九九在线精品| 欧美日韩视频| 蜜桃av一区二区在线观看| 日韩欧美精品一区二区综合视频| 日韩精品成人在线观看| 国产精品九九| 久久久久久色| 国产精品115| 国产精品麻豆久久| 欧美~级网站不卡| 亚洲一区二区三区免费在线观看| 亚洲影院天堂中文av色| 国产欧美亚洲精品a| 国产不卡人人| 亚洲特级毛片| 一区二区精彩视频| 91国内精品| 91亚洲成人| 99在线精品免费视频九九视 | 9999国产精品| 91成人精品| 911精品国产| 黄毛片在线观看| 一本色道久久精品| 国产欧美日韩视频在线| 97在线精品| 亚洲综合二区| 国产日韩精品视频一区二区三区| 成人在线视频区| 亚洲欧美日韩视频二区| 国产福利亚洲| 久久久国产亚洲精品| 亚洲精品无播放器在线播放| 久久永久免费| 在线亚洲自拍| 欧美国产日韩电影| 在线国产一区二区| 国产精品xxx| 欧美日韩国产高清| 亚洲精品九九| 日韩一区电影| 视频一区中文字幕精品| 久久久久久一区二区| 亚洲免费精品| 久久激五月天综合精品| 成人久久一区| 日本成人在线一区| 亚洲成人不卡| 91亚洲无吗| 日本国产精品| 日韩1区2区日韩1区2区| 亚洲成人不卡| 日本aⅴ免费视频一区二区三区| 欧美日韩国产观看视频| 一区二区日韩免费看| 亚洲永久av| 日韩专区在线视频| 国产成人1区| 午夜在线一区|