国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 熱點 > 微信 > 正文

如何在微信小程序中實現Mixins方案

2024-07-22 01:18:11
字體:
來源:轉載
供稿:網友

前言

在原生開發小程序的過程中,發現有多個頁面都使用了幾乎完全一樣的邏輯。由于小程序官方并沒有提供 Mixins 這種代碼復用機制,所以只能采用非常不優雅的復制粘貼的方式去“復用”代碼。隨著功能越來越復雜,靠復制粘貼來維護代碼顯然不科學,于是便尋思著如何在小程序里面實現 Mixins。

什么是 Mixins

Mixins 直譯過來是“混入”的意思,顧名思義就是把可復用的代碼混入當前的代碼里面。熟悉 VueJS 的同學應該清楚,它提供了更強大了代碼復用能力,解耦了重復的模塊,讓系統維護更加方便優雅。

先看看在 VueJS 中是怎么使用 Mixins 的。

// define a mixin objectvar myMixin = { created: function () { this.hello() }, methods: { hello: function () {  console.log('hello from mixin!') } }}// define a component that uses this mixinvar Component = Vue.extend({ mixins: [myMixin]})var component = new Component() // => "hello from mixin!"

在上述的代碼中,首先定義了一個名為 myMixin 的對象,里面定義了一些生命周期函數和方法。接著在一個新建的組件里面直接通過 mixins: [myMixin] 的方式注入,此時新建的組件便獲得了來自 myMixin 的方法了。

明白了什么是 Mixins 以后,便可開始著手在小程序里面實現了。

Mixins 的機制

Mixins 也有一些小小的細節需要注意的,就是關于生命周期事件的執行順序。在上一節的例子中,我們在 myMixin 里定義了一個 created() 方法,這是 VueJS 里面的一個生命周期事件。如果我們在新建組件 Component 里面也定義一個 created() 方法,那么執行結果會是如何呢?

var Component = Vue.extend({ mixins: [myMixin], created: function () { console.log('hello from Component!') }})var component = new Component()// =>// Hello from mixin!// Hello from Component!

可以看運行結果是先輸出了來自 Mixin 的 log,再輸出來自組件的 log。

除了生命周期函數以外,再看看對象屬性的混入結果:

// define a mixin objectconst myMixin = { data () { return {  mixinData: 'data from mixin' } }}// define a component that uses this mixinvar Component = Vue.extend({ mixins: [myMixin], data () { return {  componentData: 'data from component' } }, mounted () { console.log(this.$data) }})var component = new Component()


在 VueJS 中,會把來自 Mixins 和組件的對象屬性當中的內容(如 data, methods等)混合,以確保兩邊的數據都同時存在。

經過上述的驗證,我們可以得到 VueJS 中關于 Mixins 運行機制的結論:

生命周期屬性,會優先執行來自 Mixins 當中的,后執行來自組件當中的。 對象類型屬性,來自 Mixins 和來自組件中的會共存。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 类乌齐县| 古丈县| 蒙阴县| 新田县| 黄浦区| 馆陶县| 桑植县| 双鸭山市| 萨迦县| 亳州市| 正阳县| 贵德县| 屏南县| 遂平县| 涟水县| 太湖县| 天祝| 茂名市| 临沭县| 天水市| 兴国县| 金昌市| 措勤县| 会东县| 牟定县| 三穗县| 格尔木市| 巧家县| 离岛区| 涞源县| 朝阳市| 高清| 文山县| 晋城| 顺昌县| 鹤庆县| 汉寿县| 霍林郭勒市| 宜兰市| 中江县| 麻江县|