自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

用這五個技巧將你的Vue技能提升到新的高度

開發(fā) 前端
五個Vue.js的技巧可以極大地提升你的開發(fā)流程,使你的代碼更高效、更有效。從不失去反應(yīng)性地解構(gòu)屬性,到在Pinia中持久化存儲狀態(tài),再到在組件外部訪問組件方法,這些技巧可以幫助你提升你的Vue. 技能。

在這篇文章中,我們將探討五個實用的 Vue 技巧,這些技巧可以使你日常使用 Vue 編程更高效、更富有成效。無論你是Vue的初學(xué)者還是經(jīng)驗豐富的開發(fā)者,這些技巧都能幫助你編寫更清晰、更簡潔、更有效的代碼。那么,讓我們開始吧。

1. 在不失去反應(yīng)性的情況下解構(gòu)屬性

在 Vue 中,Props  是父子組件之間傳遞數(shù)據(jù)的強大方式。Prop 數(shù)據(jù)是響應(yīng)性的,這意味著在父組件中對道具值的更改將反映在接收 Prop 的子組件中。然而,子組件不能直接修改 Prop 的值。相反,它應(yīng)該發(fā)出一個事件來通知父組件更新 Prop。

在解構(gòu) Vue 的props時,prop數(shù)據(jù)在過程中會失去反應(yīng)性。然而,有一種方法可以在解構(gòu)props時保持反應(yīng)性。你可以使用toRefs指令來包裝props對象,并在解構(gòu)過程中保持反應(yīng)性。有了這個指令,你可以在不擔(dān)心失去反應(yīng)性的情況下解構(gòu)prop數(shù)據(jù)。

<script setup lang="ts">
import { toRefs } from 'vue'

const props = withDefaults(
  defineProps<{
    event: object;
    address: string;
  }>(),
  {}
);

const { address } = toRefs(props)
</script>

<template>
  <div class="font-medium bg-gray-100 text-gray-700 py-3 px-3 rounded">
      {{ address }}
  </div>
</template>

2. 創(chuàng)建自定義指令

Vue 指令是可以添加到HTML元素的特殊屬性,它們讓你能夠?qū)討B(tài)數(shù)據(jù)和行為綁定到元素上。在Vue.js中,指令通過屬性名上的 v- 前綴來識別,并用于為HTML元素提供額外的功能。

一些最常用的 vue 指令包括:v-if,v-html,v-on,v-bind,v-pre,v-once 等等。在vuejs中,你可以創(chuàng)建自定義指令來執(zhí)行特定的任務(wù)。我們將創(chuàng)建一個自定義的v-model指令,用于將輸入標簽中輸入的文本轉(zhuǎn)化為大寫。

<script setup>
  import { ref, vModelText } from 'vue'

  const value = ref("")

  // 為' v-model '指令定義一個名為'capitalize '的自定義修飾符
  vModelText.beforeUpdate = function (el, { value, modifiers }) {
    // 檢查' v-model '指令中是否存在' capitalize '修飾符
    if (value && modifiers.capitalize) {
      el.value = el.value.toUpperCase()
    }
  }
</script>

<template>
  <input type="text" v-model.capitalize="value" />
</template>

指令是 Vue 中的一個強大功能,它允許你為應(yīng)用程序的用戶界面添加動態(tài)功能。通過利用指令,我們可以創(chuàng)建更具交互性和響應(yīng)性的應(yīng)用程序,這些應(yīng)用程序更易于維護和更新。

3. 針對Vue的性能標記

在應(yīng)用程序中追蹤性能瓶頸非常重要,尤其是當(dāng)你想要構(gòu)建高性能的應(yīng)用程序時。Vue 有一個特定的功能,可以在Chrome DevTools中啟用性能標記。

要在開發(fā)模式中啟用性能標記,可以將 performance  選項設(shè)置為 true。這樣我們能夠在瀏覽器開發(fā)工具的性能/時間線面板中追蹤組件的初始化、編譯、渲染和性能追蹤。

import { createApp } from "vue";
import App from "./App.vue";
import router from "./router";
import { createPinia } from "pinia";
import piniaPluginPersistedstate from "pinia-plugin-persistedstate";
import { createHead } from "unhead";

import "./style.css";

const pinia = createPinia();
createHead();

pinia.use(piniaPluginPersistedstate);

const app = createApp(App);

if (process.env.NODE_ENV === "development") {
  app.config.performance = true;
}

app.use(router);
app.use(pinia);
app.mount("#app");

唯一的注意事項是,它只能在開發(fā)模式下以及支持性能標記API的瀏覽器中運行

4. 從組件外部調(diào)用方法

在Vue 中,我們可以借助 defineExpose 宏從特定組件外部調(diào)用方法。這在處理某種方式上相互依賴的多個組件時特別有用。

defineExpose 宏可以暴露出組件屬性,這些屬性可以在其他組件中通過refs進行訪問,從而允許你在特定組件中調(diào)用方法。這也可以讓你訪問變量聲明,props 等等。

<script setup lang="ts">
  function doSomething(){
    // do smething
  }
  defineExpose({ doSomething });
</script>

<div>
  <h1>Child component</h1> 
</div>

現(xiàn)在我們可以在任何地方導(dǎo)入該組件,并按照下面的示例調(diào)用其中的各種方法。

<script setup lang="ts">
import { ref, onMounted} from 'vue';
import ChildComponent from './ChildComponent';
const childComponent = ref();

onMounted(() => {
  childComponent.value.doSomething();
});
</script>

<div id="app">
  <ChildComponent ref="childComponent" />
</div>

5. 持久化Pinia 存儲

Pinia,是 Vue3 推薦的 store ,Pinia 簡化了 store實現(xiàn),并且輕量級且具有性能優(yōu)勢。使用 Pinia 管理 store時,持久化 store 數(shù)據(jù)非常重要。

pinia-plugin-persistedstate 是一個高度可定制的包,為這項任務(wù)提供自定義存儲、序列化器和路徑選擇選項。

請使用您喜歡的包管理器按照下面的方式安裝 pinia-plugin-persistedstate:

pnpm : pnpm i pinia-plugin-persistedstate
npm : npm i pinia-plugin-persistedstate
yarn : yarn add pinia-plugin-persistedstate

需要在 main.js 或 main.ts 文件中進行配置,如下所示。

import { createApp } from "vue";
import App from "./App.vue";
import router from "./router";
import { createPinia } from "pinia";
import piniaPluginPersistedstate from "pinia-plugin-persistedstate";
import { createHead } from "unhead";

import "./style.css";

const pinia = createPinia();
createHead();

// inject piniaPluginPersistedstate to pinia
pinia.use(piniaPluginPersistedstate);

const app = createApp(App);

app.use(router);
app.use(pinia);
app.mount("#app");

通過在您的 store  中將 persist 屬性設(shè)置為 true,啟用Pinia存儲持久性:

import { defineStore } from "pinia";

export const uselistingStore = defineStore(`listingStore`, {
  state: () => {
    return {
      data: [],
    };
  },
  persist: true,
  actions: {
  },
  getters: {

  },
});

總結(jié)

總的來說,這五個Vue.js的技巧可以極大地提升你的開發(fā)流程,使你的代碼更高效、更有效。從不失去反應(yīng)性地解構(gòu)屬性,到在Pinia中持久化存儲狀態(tài),再到在組件外部訪問組件方法,這些技巧可以幫助你提升你的Vue. 技能。

責(zé)任編輯:武曉燕 來源: 大遷世界
相關(guān)推薦

2022-10-18 14:22:27

2018-07-24 11:42:01

認證敏捷項目管理認證

2020-12-09 22:15:40

物聯(lián)網(wǎng)IOT客戶關(guān)系

2022-12-19 15:08:18

數(shù)據(jù)安全加密

2023-04-11 16:28:31

人工智能AI

2024-12-05 10:18:48

2022-02-10 15:58:51

機器學(xué)習(xí)人工智能汽車

2009-11-07 22:29:41

2021-05-28 11:02:11

VR

2016-07-19 09:35:34

云計算

2023-07-21 12:51:32

2024-01-07 20:14:18

CSS開發(fā)工具

2024-03-19 13:52:05

NVIDIAQuantum全新網(wǎng)絡(luò)交換機

2024-11-01 07:30:00

2010-11-18 10:20:28

CSS3

2021-09-09 08:23:11

Vue 技巧 開發(fā)工具

2015-06-08 15:23:24

OceaStor 55華為

2018-02-23 11:34:31

蘋果App開發(fā)者

2023-02-13 09:31:22

2023-11-27 15:41:16

物聯(lián)網(wǎng)數(shù)字孿生
點贊
收藏

51CTO技術(shù)棧公眾號