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

首頁 > 語言 > JavaScript > 正文

實用的Vue開發技巧

2024-05-06 15:38:40
字體:
來源:轉載
供稿:網友

1 狀態共享

隨著組件的細化,就會遇到多組件狀態共享的情況,Vuex當然可以解決這類問題,不過就像Vuex官方文檔所說的,如果應用不夠大,為避免代碼繁瑣冗余,最好不要使用它,今天我們介紹的是vue.js 2.6新增加的Observable API ,通過使用這個api我們可以應對一些簡單的跨組件數據狀態共享的情況。

如下這個例子,我們將在組件外創建一個store,然后在App.vue組件里面使用store.js提供的store和mutation方法,同理其它組件也可以這樣使用,從而實現多個組件共享數據狀態。

首先創建一個store.js,包含一個store和一個mutations,分別用來指向數據和處理方法。

import Vue from "vue";export const store = Vue.observable({ count: 0 });export const mutations = {setCount(count) {store.count = count;}};

然后在App.vue里面引入這個store.js,在組件里面使用引入的數據和方法

<template><div id="app"><img width="25%" src="./assets/logo.png"><p>count:{{count}}</p><button @click="setCount(count+1)">+1</button><button @click="setCount(count-1)">-1</button></div></template><script>import { store, mutations } from "./store";export default {name: "App",computed: {count() {return store.count;}},methods: {setCount: mutations.setCount}};</script><style>

你可以點擊在線DEMO查看最終效果

2 長列表性能優化

我們應該都知道vue會通過object.defineProperty對數據進行劫持,來實現視圖響應數據的變化,然而有些時候我們的組件就是純粹的數據展示,不會有任何改變,我們就不需要vue來劫持我們的數據,在大量數據展示的情況下,這能夠很明顯的減少組件初始化的時間,那如何禁止vue劫持我們的數據呢?可以通過object.freeze方法來凍結一個對象,一旦被凍結的對象就再也不能被修改了。

export default {data: () => ({users: {}}),async created() {const users = await axios.get("/api/users");this.users = Object.freeze(users);}};

另外需要說明的是,這里只是凍結了users的值,引用不會被凍結,當我們需要reactive數據的時候,我們可以重新給users賦值。

export default {data: () => ({users: []}),async created() {const users = await axios.get("/api/users");this.users = Object.freeze(users);},methods:{// 改變值不會觸發視圖響應this.users[0] = newValue// 改變引用依然會觸發視圖響應this.users = newArray}};

3 去除多余的樣式

隨著項目越來越大,書寫的不注意,不自然的就會產生一些多余的css,小項目還好,一旦項目大了以后,多余的css會越來越多,導致包越來越大,從而影響項目運行性能,所以有必要在正式環境去除掉這些多余的css,這里推薦一個庫purgecss,支持CLI、JavascriptApi、Webpack等多種方式使用,通過這個庫,我們可以很容易的去除掉多余的css。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 青浦区| 铜梁县| 新兴县| 西乌珠穆沁旗| 东安县| 乐昌市| 南木林县| 海阳市| 牙克石市| 聂荣县| 瑞金市| 琼结县| 清水县| 石楼县| 博白县| 仁寿县| 上饶市| 镇江市| 图木舒克市| 阳朔县| 津南区| 贵定县| 广宗县| 遂川县| 集贤县| 永宁县| 连城县| 年辖:市辖区| 沧源| 筠连县| 东光县| 宝山区| 西贡区| 彰化市| 兰西县| 河津市| 雷波县| 济阳县| 蕉岭县| 明溪县| 新邵县|