<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
查詢完表格資料後 通過作用域插槽,將該行資料傳到修改頁面(定義了個新物件儲存資料),但是由於資料雙向繫結,修改這個新物件的值,會影響到最初查詢表格獲取的值
如下
this.editForm = row
方法1:通過json之間的解析,深拷貝建立一個與row無繫結關聯的臨時物件,再賦值給editForm
this.editForm = JSON.parse(JSON.stringify(row))
方法2:使用…展開運運算元
this.editForm = {...this.editForm,...row}
方法3:$set也不會影響原資料,但只能操作單個資料,在上述場景可能不太適用(屬性多久麻煩了)
this.$set(this.editForm,'roleName',row.roleName) this.$set(this.editForm,'roleDesc',row.roleDesc)
這樣就不會影響到最初的row啦!
檢視模型雙向繫結,是Model-View-ViewModel的縮寫,也就是把MVC中的Controller演變成ViewModel。Model層代表資料模型,View代表UI元件,ViewModel是View和Model層的橋樑,資料會繫結到viewModel層並自動將資料渲染到頁面中,檢視變化的時候會通知viewModel層更新資料。以前是操作DOM結構更新檢視,現在是資料驅動檢視。
優點:
1.低耦合。檢視(View)可以獨立於Model變化和修改,一個Model可以繫結到不同的View上,當View變化的時候Model可以不變化,當Model變化的時候View也可以不變;
2.可重用性。你可以把一些檢視邏輯放在一個Model裡面,讓很多View重用這段檢視邏輯。
3.獨立開發。開發人員可以專注於業務邏輯和資料的開發(ViewModel),設計人員可以專注於頁面設計。
4.可測試。
資料(model)變化主動觸發ui(view)變化,同時ui(view)變化主動觸發資料(model)變化,當然這裡的ui變化指定表單中的使用者輸入,可通俗的理解為:在單向繫結的基礎上給可輸入元素(input、textarea等)新增change(input)事件,來動態修改model和view
vue.js是採用資料劫持結合釋出者-訂閱者模式的方式,通過Object.defineProperty()來劫持各個屬性的setter和getter,在資料變動時釋出訊息給訂閱者,觸發相應的監聽回撥
使用 v-model / .sync 實現,v-model是 v-bind:value 和 v-on:input 的語法糖
v-bind
:value 實現了 data ⇒ UI 的單向繫結v-on
:input 實現了 UI ⇒ data 的單向繫結引申出這兩個單向繫結如何實現
v-bind的實現
通過 Object.defineProperty API 給 data 建立 getter 和 setter,用於監聽 data 的改變,data 一變就會安排改變 UI
v-on的實現
通過 template compiler 給 DOM 新增事件監聽,DOM input 的值變了就會去修改 data。
Compile(指令解析器)
Compile主要做的事情是解析模板指令,將模板中變數替換成資料,然後初始化渲染頁面檢視,並將每個指令對應的節點繫結更新函數,新增鑑定資料的訂閱者,一旦資料有變動,收到通知,更新檢視
Observer(資料監聽器)
Observer的核心是通過Object.defineProprtty()來監聽資料的變動,這個函數內部可以定義setter和getter,每當資料發生變化,就會觸發setter。這時候Observer就要通知訂閱者,訂閱者就是Watcher
Watcher(訂閱者)
Watcher訂閱者作為Observer和Compile之間通訊的橋樑,主要做的事情是:
以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45