Jadual Kandungan
Apakah corak reka bentuk:
Mod kilang" >Mod kilang
Mod Penghias " >Mod Penghias
Mod Strategi" >Mod Strategi
mod pelanggan terbitkan" >mod pelanggan terbitkan

Apakah mod yang vue gunakan?

Dec 19, 2022 pm 05:11 PM
vue corak reka bentuk vue3

Corak reka bentuk yang digunakan oleh vue: 1. Mod Singleton memastikan bahawa kelas hanya mempunyai satu objek contoh dan menyediakan pusat akses global untuk aksesnya. 2. Corak kilang ialah corak yang digunakan untuk mencipta objek Ia tidak perlu untuk mendedahkan logik khusus pembina, tetapi untuk merangkum logik dalam setiap fungsi. 3. Mod penghias membenarkan menambah fungsi baharu pada fungsi sedia ada tanpa mengubah strukturnya. 4. Corak strategi adalah untuk menentukan satu siri algoritma, merangkumnya satu demi satu, dan menjadikannya boleh ditukar ganti. 5. Model penerbitan pelanggan.

Apakah mod yang vue gunakan?

Persekitaran pengendalian tutorial ini: sistem windows7, versi vue3, komputer DELL G3.

Apakah corak reka bentuk:

Prinsip corak reka bentuk adalah untuk mencari perubahan dalam program dan merangkum perubahan untuk mencapai kebolehgunaan semula yang cekap. Intinya adalah niat, bukan struktur. Corak reka bentuk boleh membantu kami meningkatkan kebolehgunaan semula, kebolehskalaan, kebolehselenggaraan dan fleksibiliti kod. Matlamat utama kami dalam menggunakan corak reka bentuk adalah untuk mencapai kelompok tinggi dan gandingan rendah kod. Pernahkah anda terfikir tentang soalan ini, bagaimana untuk menjadikan kod lebih mantap Sebenarnya, terasnya terletak pada memahami perubahan dan kebolehubahan. Pastikan bahagian yang berubah lebih fleksibel dan bahagian yang tidak berubah adalah lebih stabil, dan menggunakan corak reka bentuk membolehkan kami mencapai matlamat ini.

Mari kita ringkaskan corak reka bentuk yang biasa digunakan dalam projek atau kerja vue.

Singleton Pattern

Singleton Pattern: Pastikan kelas mempunyai hanya satu objek contoh dan menyediakan akses global Klik untuk akses.

Kelebihan: Berkenaan dengan objek tunggal, hanya menjana satu contoh objek, mengelakkan penciptaan dan pemusnahan kejadian yang kerap, dan mengurangkan penggunaan memori.

Kelemahan: Tidak berkenaan dengan objek yang dipanjangkan secara dinamik.

Senario: Log masuk tetingkap terapung, contoh aksios dalam Vue (kami melakukan pemintasan permintaan dan pemintasan tindak balas pada aksios, panggil aksios terkapsul beberapa kali tetapi tetapkan sekali sahaja, Eksport aksios terkapsul ialah singleton), stor pengurusan negeri global, kumpulan benang, cache global

  function Person (name, age) {
    this.name = name
    this.age = age
    this.info = function () {
      console.log(`我的名字叫${this.name}, 我今年${this.age}了`)
    }
  }
  Person.getInstance = function (name, age) {
    if (!this.instance) {
      this.instance = new Person(name, age)
    }
    console.log(this.instance)
    return this.instance
  }
  let b1 = Person.getInstance('单例1', 18)
  let b2 = Person.getInstance('单例2', 18)
  b1.info()
  b2.info()
Salin selepas log masuk

Mod kilang

Mod kilang: Corak Kilang ialah corak reka bentuk yang paling biasa digunakan untuk mencipta objek. Ia tidak perlu untuk mendedahkan logik khusus pembina, tetapi untuk merangkum logik dalam setiap fungsi, maka pembina ini boleh dianggap sebagai kilang.

Senario: Di mana terdapat pembina, banyak kod pembina ditulis dan banyak operator baharu dipanggil.

Kelebihan: Melalui corak kilang, kami boleh mencipta sebilangan besar objek serupa dengan pantas tanpa menduplikasi kod.

Kelemahan: Objek yang dicipta oleh corak kilang tergolong dalam Objek, dan jenis objek tidak dapat dibezakan Inilah sebabnya corak kilang tidak digunakan secara meluas.

 function Factory (name, age) {
   this.name = name;
   this.age = age;
   // 或者
   // let obj = {}
   // obj.name = name
   // obj.age = age
   // return obj
 }
 Factory.prototype.say = function () {
   console.log(`我的名字叫${this.name}, 我今年${this.age}了`)
 }
 let zs = new Factory('张三', 18);
 let ls = new Factory('李四', 20);
 zs.say()
 ls.say()
Salin selepas log masuk

Mod Penghias

Mod Penghias (AOP Pengaturcaraan Aspek) : Tanpa menukar objek itu sendiri Pada asas, tanggungjawab ditambah secara dinamik pada objek semasa menjalankan program jika badan fungsi diubah suai secara langsung, ia melanggar 'prinsip terbuka dan tertutup' dan juga melanggar 'prinsip tanggungjawab tunggal' kami; tambah fungsi sedia ada pada Fungsi tambah fungsi baharu tanpa mengubah strukturnya.

Senario: Pengesahan borang dan penyerahan borang dalam vue menggunakan model ini dan ikut prinsip tertutup dan terbuka.

 function before (fn, callback) {
    let _this = this;
    return function () {
      callback.apply(this, arguments)
      return fn.bind(this, arguments)
    }
  }

  function after (fn, callback) {
    let _this = this 
    return function () {
      let res = fn.apply(this, arguments)
      callback.apply(this, arguments)
      return res
    }
  }
  // before和after是两个高阶函数,让我们一起回忆一下什么是高阶函数?
  // 还知道call,apply,bind的区别吗
  let getName = function getName () {
    // 加入这是你同事写的烂代码,看不下去的那种,那么别动他的代码
    console.log('这是getName函数')
  }

  before(getName, function () {
    // 这个就是你要写的新逻辑
    console.log('切入前代码')
  })()

  after(getName, function () {
    // 这个也是你要写的新逻辑
    console.log('切入后代码')
  })()
Salin selepas log masuk

Mod Strategi

Mod Strategi: Ia adalah untuk mentakrifkan satu siri algoritma dan merangkumnya satu oleh satu dan menjadikannya boleh ditukar ganti.

 let strategy = {
    'A': function (bonus) {
      return bonus * 4
    },
    'B': function (bonus) {
      return bonus * 3
    }
  }

  function fn (level, bonus) {
    return strategy[level](bonus)
  }

  let result = fn('A', 4000)
  console.log(result, 'result')
  // 策略模式提供了开放-封闭原则,将算法或者方法封装在一个类中,使它们易于切换,易于替换。

  function func (a, b) {
    let f = function f() {
      return a + b
    }
    return f
  }
Salin selepas log masuk

Anda juga boleh menggunakan

// 这里可以将所有的表单验证正则函数写在这里
export const loginUsername = (str) => {
  return /^[a-zA-Z0-9_]{3,20}$/.test(str);
};
Salin selepas log masuk
import * as validateForm from './validate';
export const gene = (key, msg) => {
  return (r, v, c) => {
    if (validateForm[key](v)) {
      c();
    } else {
      c(new Error(msg));
    }
  };
};
Salin selepas log masuk
// 这样看着是不是很清晰明了
import {gene} from '@/utils/formValidateGene';
rules: {
     account: [{ required: true, validator: gene('loginUsername', '请输入合适的账号'), trigger: ['blur', 'change'] }]
 }
Salin selepas log masuk

mod pelanggan terbitkan

Corak Penerbit-PelangganJuga dipanggil Corak Pemerhati, Corak Penerbit-PelangganPerhubungan pergantungan satu-dengan-banyak, apabila keadaan objek Apabila perubahan berlaku, semua objek yang bergantung padanya mesti dimaklumkan; Corak pemerhati ialah hubungan pergantungan satu dengan satu.

  • Mod pemerhati tulisan tangan
class Observer {
  client = {}
  // 订阅
  listen (key, fn) {
    if (!this.client[key]) {
      this.client[key] = []
    } 
      this.client[key].push(fn)
  }
  // 发布
  publish (key) {
    this.client[key].forEach(fn => {
      fn.apply(this, arguments)
    })
  }
}

let observer = new Observer()
observer.listen('华为', (model, brand) => {
  console.log(model, brand)
})
observer.listen('苹果', function (model, brand) {
  console.log(model, brand)
})
observer.publish('华为', 'P50')
observer.publish('苹果', '14')
Salin selepas log masuk
  • Tulisan tangan responsif
class EventEmitter {
    constructor () {
      this.client = {}
    }
    on (key, fn) {
      if (!this.client[key]) {
        this.client[key] = []
      }
      this.client[key].push(fn)
    }
    trigger (key, ...args) {
      this.client[key].forEach(cb => cb(...args))
    }
  }
  let event = new EventEmitter()
  event.on('hello', function(res) {
    console.log('hello', res)
  })
  
  let data = {
    name: '测试'
  }
  Object.defineProperty(data, 'name', {
    get (val) {
      // console.log(val)
    },
    set (newVal) {
      console.log(newVal)
      event.trigger('hello', newVal)
    }
  })
  data.name = '正在测试'
Salin selepas log masuk

[Cadangan berkaitan: video vuejs tutorial, pembangunan bahagian hadapan web]

Atas ialah kandungan terperinci Apakah mod yang vue gunakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara menambah fungsi ke butang untuk vue Cara menambah fungsi ke butang untuk vue Apr 08, 2025 am 08:51 AM

Anda boleh menambah fungsi ke butang VUE dengan mengikat butang dalam templat HTML ke kaedah. Tentukan kaedah dan tulis logik fungsi dalam contoh Vue.

Cara menggunakan bootstrap di vue Cara menggunakan bootstrap di vue Apr 07, 2025 pm 11:33 PM

Menggunakan bootstrap dalam vue.js dibahagikan kepada lima langkah: Pasang bootstrap. Import bootstrap di main.js. Gunakan komponen bootstrap secara langsung dalam templat. Pilihan: Gaya tersuai. Pilihan: Gunakan pemalam.

Cara merujuk fail js dengan vue.js Cara merujuk fail js dengan vue.js Apr 07, 2025 pm 11:27 PM

Terdapat tiga cara untuk merujuk kepada fail JS dalam vue.js: Secara langsung tentukan jalan menggunakan & lt; skrip & gt; tag ;; import dinamik menggunakan cangkuk kitaran hayat yang dipasang (); dan mengimport melalui Perpustakaan Pengurusan Negeri VUEX.

Cara Menggunakan Watch di Vue Cara Menggunakan Watch di Vue Apr 07, 2025 pm 11:36 PM

Pilihan Watch di Vue.js membolehkan pemaju mendengar perubahan dalam data tertentu. Apabila data berubah, tontonkan mencetuskan fungsi panggil balik untuk melakukan paparan kemas kini atau tugas lain. Pilihan konfigurasinya termasuk segera, yang menentukan sama ada untuk melaksanakan panggilan balik dengan serta -merta, dan mendalam, yang menentukan sama ada untuk mendengarkan secara rekursif terhadap objek atau tatasusunan.

Apakah yang dimaksudkan dengan pembangunan Vue Multi-Page? Apakah yang dimaksudkan dengan pembangunan Vue Multi-Page? Apr 07, 2025 pm 11:57 PM

Pembangunan pelbagai halaman Vue adalah cara untuk membina aplikasi menggunakan rangka kerja VUE.JS, di mana permohonan dibahagikan kepada halaman berasingan: Penyelenggaraan kod: Memisahkan aplikasi ke dalam beberapa halaman boleh menjadikan kod lebih mudah untuk dikendalikan dan diselenggarakan. Modularity: Setiap halaman boleh digunakan sebagai modul yang berasingan untuk penggunaan semula dan penggantian mudah. Routing mudah: Navigasi antara halaman boleh diuruskan melalui konfigurasi penghalaan mudah. Pengoptimuman SEO: Setiap halaman mempunyai URL sendiri, yang membantu SEO.

Cara kembali ke halaman sebelumnya oleh Vue Cara kembali ke halaman sebelumnya oleh Vue Apr 07, 2025 pm 11:30 PM

Vue.js mempunyai empat kaedah untuk kembali ke halaman sebelumnya: $ router.go (-1) $ router.back () menggunakan & lt; router-link to = & quot;/& quot; Komponen Window.History.Back (), dan pemilihan kaedah bergantung pada tempat kejadian.

Cara Menanyakan Versi Vue Cara Menanyakan Versi Vue Apr 07, 2025 pm 11:24 PM

Anda boleh menanyakan versi VUE dengan menggunakan Vue Devtools untuk melihat tab VUE dalam konsol penyemak imbas. Gunakan NPM untuk menjalankan arahan "NPM LIST -G VUE". Cari item VUE dalam objek "Dependencies" fail Package.json. Untuk projek Vue CLI, jalankan perintah "Vue -version". Semak maklumat versi di & lt; skrip & gt; Tag dalam fail HTML yang merujuk kepada fail VUE.

Cara Menggunakan Fungsi Memintas Vue Cara Menggunakan Fungsi Memintas Vue Apr 08, 2025 am 06:51 AM

Pemintasan fungsi dalam VUE adalah teknik yang digunakan untuk mengehadkan bilangan kali fungsi dipanggil dalam tempoh masa yang ditentukan dan mencegah masalah prestasi. Kaedah pelaksanaan adalah: mengimport perpustakaan lodash: import {debounce} dari 'lodash'; Gunakan fungsi debounce untuk membuat fungsi memintas: const debouncedfunction = debounce (() = & gt; { / logical /}, 500); Panggil fungsi Intercept, dan fungsi kawalan dipanggil paling banyak sekali dalam 500 milisaat.

See all articles