Adakah terdapat cara yang disyorkan untuk menyebarkan data melalui komponen vue? Apa yang saya mahu lakukan ialah mendapatkan data dari bahagian belakang once
dan menyebarkannya ke pelbagai lokasi dalam projek saya, tetapi saya tidak dapat mencari strategi yang betul.
sessionStorage: Berfungsi dengan baik dan ditetapkan semula apabila menyegarkan/menutup tetingkap, tetapi ia tidak akan menyebarkan data anda ke tab baharu sebaik sahaja anda perlu membuat teg target="_blank"
anchor. p>
localStorage: Lebih baik daripada sessionStorage
需要更多的工作,因为您需要手动删除数据以保持整洁。对我来说一个大问题是,看起来你无法正确传递 markdown
和 arrays
,至少没有 stringify
。我已经使用 localStorage
构建了一个项目,并最终从我的大多数组件发送 ajax 请求
,因为我无法按照我想要的方式通过我的应用程序传播数据。此时我的frontend
是backend
pada pendapat saya.
Pendapat peribadi saya tentang localStorage
的问题:我使用marked
包来显示Markdown
,但如果传递undefined
,它会抛出错误。当我想在 reactive 状态
中使用它时,这会出现问题,因为它不会导致 undefined
,而是引发错误并使整个应用程序崩溃。我想说的是,当您将 undefined localStorage 值
传递给 marked
中的 either 或 field
adalah seperti berikut:
const state = reactive({ value: marked(localStorage.value) || "" })
Jika localStorage.value
kosong, ia akan ranap permohonan anda.
Masalah lain ialah saya mendasarkan kandungan pada locale
获取文本内容并将其存储在 localStorage
中。这很好,直到用户更改 locale
dan semua rentetan kandungan perlu digantikan dengan rentetan terjemahan. Ini menjadi sangat rumit jika saya ingin menggunakan komponen sebagai templat untuk memuatkan tempat yang berbeza.
vuex: Saya cepat mencuba vuex
并发现它很有用,但没有看到比仅使用 localStorage
untuk mencapai faedah untuk tujuan saya. Mungkin saya akan cuba lagi.
Bagaimana untuk menyebarkan data melalui aplikasi?
Terdapat beberapa hujah yang baik tentang mengapa Vuex lebih baik daripada storan tempatan:
https://www.quora.com/What-is-the-benefit-of-using-Vuex-over-LocalStorage-to-store-the-state-of -Applications in Vue-js
Anda juga boleh mencuba barangan yang boleh digubah. Ia adalah fungsi boleh guna semula (serupa dengan mixin) dalam komposisi-api (dalam vue2 pemalam komposisi-api diperlukan, dalam vue3 ia terbina dalam). Ia juga boleh menjadi tempat anda menyimpan data anda. Ia lebih mudah dan lebih intuitif daripada Vuex.