cari
Rumahhujung hadapan webView.jsBagaimana untuk mengkonfigurasi Vue3+TS+Vant3+Pinia

Tetapan IDE yang disyorkan

Kod VS + Volar

Sokongan menaip. Vue dalam TS mengimport

kerana TypeScript tidak boleh mengendalikan maklumat jenis. import vue, secara lalai ia diisi dengan jenis komponen vue generik. Jika anda hanya mengambil berat tentang jenis prop komponen templat, ini tidak mengapa dalam kebanyakan kes. Walau bagaimanapun, jika anda ingin mendapatkan jenis prop sebenar. import vue, anda boleh mendayakan mod pengambilalihan Volar dengan mengikuti langkah berikut:

1. Jalankan sambungan: Tunjukkan sambungan terbina dalam daripada palet arahan Kod VS, cari ciri bahasa TypeScript dan JavaScript, kemudian kanan- klik dan Pilih Dilumpuhkan (Ruang Kerja). Mod pengambilalihan didayakan secara automatik apabila sambungan TypeScript lalai dilumpuhkan.

2. Muat semula tetingkap Kod VS dengan menjalankan Pembangun: Muat semula tetingkap daripada palet arahan.

Pasang pnpm

#Lightweight pnpm
Jelaskan sedikit
Prinsip pnpm ialah ia tidak akan menyimpan salinan yang sepadan dengan mudah, tetapi fail berbeza hanya tambah fail yang diubah, yang bersamaan dengan bahagian yang sama bagi berbilang projek ini yang berkongsi satu versi kebergantungan.

Dengan cara ini, ruang cakera keras boleh dikurangkan dengan banyak dan kelajuan pemasangan akan dipercepatkan pada masa yang sama

Secara terus terang, ia akan dimuatkan lebih cepat daripada npm
Sebagai contoh, jika anda memasang kebergantungan, Hanya gunakan

npm install pnpm -g

dan anda akan mendapati bahawa ia adalah lebih pantas daripada npm.

pnpm install

1. Pasang vite

Bina vite

yarn create vite

Pasang kebergantungan

npm i

Mulakan projek

yarn dev

Pilih versi Vue3 +TS Itu sahaja

2. Pasang pinia

npm add pinia@next

Gunung Pinia

main.ts

import { createApp } from 'vue'
import './style.css'
import App from './App.vue'
import {createPinia} from 'pinia'
const pinia = createPinia()
const app = createApp(App)
// 挂载到 Vue 根实例
app.use(pinia)
createApp(App).mount('#app')

Perkenalkan Pinia secara tempatan

import { defineStore } from 'pinia'

Anda boleh melakukan perkara berikut Lihat contoh penggunaan:

  • Anda boleh mencipta fail store/module/useCountStore.ts di bawah src yang sepadan

  • Kandungan khusus adalah seperti berikut:
    useCountStore.ts

import { defineStore } from 'pinia'

//定义容器
//参数1:容器的id,必须唯一,将来pinia会把所有的容器挂载到根容器
//参数2:选项对象
//返回值是一个函数,调用得到容器实列
export const useMainStore=defineStore('main',{
    //state类似于组件的data,用来存储全局状态的
    //state必须是函数:这样是为了在服务端渲染的时候避免交叉请求导致的数据状态污染
    //必须是箭头函数,这是为了TS更好的类型推导
   state:()=>{
   return{
      count:100,
      foo:'ber',
      arr:[1,2,3]
   }
   },
   //getters 类似于组件的computed,用来封装计算属性,有缓存功能
   //和vuex中的getters没有区别
   getters:{
      // 方式一:这里的state就是上面的state状态对象,使用参数可自动推到出返回值的类型
       count10(state){
       return state.count+20
       },

      //方式二:getters也可使用this
      //直接使用this,ts不会推导出返回值是什么类型,所以要手动标明返回值的类型
/*        count10():number{
          return this.count+20
       }, */


      // 方式三:传递参数,但不使用参数,直接用this,获取值也可,自动推出返回值类型(不推荐使用)
/*       count10(state){
         return this.count+20
      } */
   },
   //类似于组件的methods, 封装业务逻辑,修改state
   actions:{
      //注意不能使用箭头函数定义actions:因为箭头函数绑定外部this,会改变this指向
      //actions就是 通过this返回当前容器实例
      // 这里的actions里的事件接受参数
      // 这里的num:number为自定义参数,需要声明参数类型
      changeState(num:number){
         // this.count++;
         this.count+=num
         this.foo='hello!'
         this.arr.push(4)

         // 同理,actions里也可使用$patch
          this.$patch({})
          this.$patch(state=>{})


         //在此注意:patch和普通多次修改的区别在原理上的区别是
         // 1.涉及到数据响应式和视图更新,多次修改,修改几次视图就更新就更新几次
         // 2.patch 批量修改 视图只更新一次,更有利于性能优化
      }
   }
})
//使用容器中的state
//修改 state
//容器中的actions的使用

Selepas data ditulis, anda boleh menggunakannya dalam komponen

rreee

3 . Pasang vant3

<template>
  <h4 id="Pinia基本使用">Pinia基本使用</h4>
  <p>{{mainStore.count}}</p>
  <p>{{mainStore.arr}}</p>
  {{mainStore.count10}}
  <hr />
  <p>解构mainStore后的渲染</p>
  <p>{{count}}</p>
  <p>{{foo}}</p>
  <hr />
  <p>
    <van-button type="success" @click="handleChangeState">修改数据</van-button>
  </p>
</template>
<script lang="ts" setup>
import { useMainStore } from "../../store/module/useCountStore";
import { storeToRefs } from "pinia";
const mainStore = useMainStore();
console.log(mainStore.count);
//可以直接解构mainStore,但是这样是有问题的,这样拿到的数据不是响应式的,是一次性的,之后count和foo的改变这里是不会变的
//Pinia其实就是把state数据都做了reactive处理了
//  const { count,foo}=mainStore

//解决不是响应式的办法 官方的一个api storeToRefs
// storeToRefs的原理是把结构出来的数据做ref响应式代理
const { count, foo } = storeToRefs(mainStore);

const handleChangeState = () => {
  // 数据的修改
  // 方式一:最简单的方式,直接调用修改
  mainStore.count++;

  //方式二:如果要修改多个数据,建议使用$patch 批量更新

  // 方式三:更好的批量更新的函数:$patch是一个函数,这个也是批量更新
  // 这里的state index.ts里的state
  mainStore.$patch((state) => {
    state.count++;
    state.foo = "hello!";
    state.arr.push(4);
  });

  //方式四:逻辑比较多的时候封装到actions中做处理
  mainStore.changeState(10);
};
</script>

Pasang pemalam

// 两种都可以
npm i vant
npm i vant@next -s

Pemalam ini boleh memperkenalkan komponen secara automatik atas permintaan

Konfigurasikan pemalam berdasarkan projek vite

Konfigurasikan dalam vite.config.ts

# 通过 npm 安装
npm i unplugin-vue-components -D

# 通过 yarn 安装
yarn add unplugin-vue-components -D

# 通过 pnpm 安装
pnpm add unplugin-vue-components -D

Perkenalkan komponen

Perkenalkan komponen vant dalam main.ts

import vue from &#39;@vitejs/plugin-vue&#39;;
import Components from &#39;unplugin-vue-components/vite&#39;;
import { VantResolver } from &#39;unplugin-vue-components/resolvers&#39;;

export default {
  plugins: [
    vue(),
    Components({
      resolvers: [VantResolver()],
    }),
  ],
};

4 >

Bagaimana untuk mengkonfigurasi Vue3+TS+Vant3+Piniakandungan konfigurasi penghala/index.ts adalah seperti berikut:

import { createApp } from &#39;vue&#39;;
import { Button } from &#39;vant&#39;;

const app = createApp();
app.use(Button);

item konfigurasi main.ts

npm install vue-router

App.vue

[Imej pautan luar pemindahan gagal. Tapak sumber mungkin mempunyai mekanisme anti-leeching. Adalah disyorkan untuk menyimpan imej dan memuat naiknya terus (img-TOITHQne-1658887594763 )(./src/assets/image/MDImg/router.png)]


5. Pasang axios

import { createRouter, createWebHistory,createWebHashHistory, RouteRecordRaw } from &#39;vue-router&#39;
import Home from &#39;../view/Home.vue&#39;;
const routes: Array<RouteRecordRaw> = [
  {
    path: &#39;/&#39;,
    name: &#39;index&#39;,
    component: Home,
  },
]
const router = createRouter({
  history: createWebHashHistory(),
  
 // history: createWebHistory(),
  routes
})
export default router;

Pakej ini adalah untuk rujukan


Bagaimana untuk mengkonfigurasi Vue3+TS+Vant3+Pinia

Ini telah diubah suai dan kod di bawah akan digunakanBagaimana untuk mengkonfigurasi Vue3+TS+Vant3+Pinia

import App from &#39;./App.vue&#39;
import router from &#39;./router/index&#39;
app.use(router).mount(&#39;#app&#39;)

service.ts


npm install axios
pnpm install axios
Bagaimana untuk mengkonfigurasi Vue3+TS+Vant3+Pinia Kemudian panggil

 import axios from &#39;axios&#39;

// 创建axios
const service = axios.create({
  // baseURL: &#39;/api&#39;,
  baseURL: &#39;http://xxx.xxx.xx.xxx/&#39;,
  timeout:80000
});

// 添加请求拦截器
service.interceptors.request.use(
  (config:any) => {
    let token:string =&#39;&#39;//此处换成自己获取回来的token,通常存在在cookie或者store里面
    if (token) {
      // 让每个请求携带token-- [&#39;X-Token&#39;]为自定义key 请根据实际情况自行修改
      config.headers[&#39;X-Token&#39;] = token
   
      config.headers.Authorization =  + token       
     }
    return config
  },
  error => {
    // Do something with request error
    console.log("出错啦", error) // for debug
    Promise.reject(error)
  }
)

service.interceptors.response.use(
  (response:any) => {
   return response.data
 },    /*  */
 error => {
   console.log(&#39;err&#39; + error) // for debug
   if(error.response.status == 403){
     // ElMessage.error(&#39;错了&#39;)
     console.log(&#39;错了&#39;);
     
   }else{
     // ElMessage.error(&#39;服务器请求错误,请稍后再试&#39;)
     console.log(&#39;服务器请求错误,请稍后再试&#39;);
   }
   return Promise.reject(error)
 }
)
export default service;
6 Skim penyesuaian

postcss-pxtorem plug-in

digunakan untuk menukar penyesuaian px kepada rem (bermaksud anda hanya perlu mengisi nilai px yang sepadan dan ia boleh dipaparkan secara automatik pada halaman Adaptasi, tidak perlu menukar rem secara manual.

import {request} from &#39;../request&#39;;
 
// 调用测试
export function getTest(params:any) {
    return request({
      url: &#39;/xxxx&#39;,//此处为自己请求地址
      method: &#39;get&#39;,
      data:params
    })
  }

Ramai netizen mendakwa untuk mencipta fail postcss.config.ts baharu Memandangkan kaedah penulisan ini sudah dibina ke dalam vite, anda hanya perlu menambahkannya ke fail vite.config.ts Hanya isikan konfigurasi yang sepadan dalam

pemalam amfe-fleksibel

Tetapkan nilai garis dasar

// 接口引入地址
import { getTest} from "../utils/api/service";

/* 调用接口 */
       getTest(&#39;放入params参数&#39;).then(response => {
            console.log("结果", response);
          })
          .catch(error => {
            console.log(&#39;获取失败!&#39;)
          });

Dua pemalam ini diperlukan, item konfigurasi diberikan di bawah

npm install postcss-pxtorem

Rendering:

Atas ialah kandungan terperinci Bagaimana untuk mengkonfigurasi Vue3+TS+Vant3+Pinia. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Artikel ini dikembalikan pada:亿速云. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Memahami Vue.js: Terutama rangka kerja frontendMemahami Vue.js: Terutama rangka kerja frontendApr 17, 2025 am 12:20 AM

Vue.js adalah kerangka JavaScript yang progresif yang dikeluarkan oleh You Yuxi pada tahun 2014 untuk membina antara muka pengguna. Kelebihan terasnya termasuk: 1. Pengikatan data responsif, Paparan Kemas Kini Automatik Perubahan Data; 2. Pembangunan komponen, UI boleh dibahagikan kepada komponen bebas dan boleh diguna semula.

Frontend Netflix: Contoh dan Aplikasi React (atau Vue)Frontend Netflix: Contoh dan Aplikasi React (atau Vue)Apr 16, 2025 am 12:08 AM

Netflix menggunakan React sebagai kerangka depannya. 1) Model pembangunan komponen React dan ekosistem yang kuat adalah sebab utama mengapa Netflix memilihnya. 2) Melalui komponen, Netflix memisahkan antara muka kompleks ke dalam ketulan yang boleh diurus seperti pemain video, senarai cadangan dan komen pengguna. 3) Kitaran Hayat DOM dan Komponen Maya React mengoptimumkan kecekapan rendering dan pengurusan interaksi pengguna.

Landskap Frontend: Bagaimana Netflix menghampiri pilihannyaLandskap Frontend: Bagaimana Netflix menghampiri pilihannyaApr 15, 2025 am 12:13 AM

Pilihan Netflix dalam teknologi front-end terutamanya memberi tumpuan kepada tiga aspek: pengoptimuman prestasi, skalabilitas dan pengalaman pengguna. 1. Pengoptimuman Prestasi: Netflix memilih React sebagai kerangka utama dan alat yang dibangunkan seperti SpeedCurve dan Boomerang untuk memantau dan mengoptimumkan pengalaman pengguna. 2. Skalabiliti: Mereka mengamalkan seni bina front-end mikro, memisahkan aplikasi ke dalam modul bebas, meningkatkan kecekapan pembangunan dan skalabilitas sistem. 3. Pengalaman Pengguna: Netflix menggunakan perpustakaan komponen bahan-UI untuk terus mengoptimumkan antara muka melalui ujian A/B dan maklum balas pengguna untuk memastikan konsistensi dan estetika.

React vs Vue: Rangka kerja mana yang digunakan oleh Netflix?React vs Vue: Rangka kerja mana yang digunakan oleh Netflix?Apr 14, 2025 am 12:19 AM

NetflixusesAcustomFrameworkcalled "gibbon" Builtonreact, notreactorsvuedirectly.1) TeamExperience: chectionBasedOnfamiliarity.2) ProjectOplePlexity: VueforsImplerProjects, ReactForComplexones.3)

Pilihan Rangka Kerja: Apa yang mendorong keputusan Netflix?Pilihan Rangka Kerja: Apa yang mendorong keputusan Netflix?Apr 13, 2025 am 12:05 AM

Netflix terutamanya menganggap prestasi, skalabiliti, kecekapan pembangunan, ekosistem, hutang teknikal dan kos penyelenggaraan dalam pemilihan rangka kerja. 1. Prestasi dan Skalabiliti: Java dan Springboot dipilih untuk memproses data besar -besaran dan permintaan serentak yang tinggi. 2. Kecekapan Pembangunan dan Ekosistem: Gunakan React untuk meningkatkan kecekapan pembangunan front-end dan menggunakan ekosistemnya yang kaya. 3. Hutang Teknikal dan Penyelenggaraan Kos: Pilih Node.js untuk membina mikroservis untuk mengurangkan kos penyelenggaraan dan hutang teknikal.

React, Vue, dan Masa Depan Frontend NetflixReact, Vue, dan Masa Depan Frontend NetflixApr 12, 2025 am 12:12 AM

Netflix terutamanya menggunakan React sebagai rangka kerja front-end, ditambah dengan VUE untuk fungsi tertentu. 1) Komponen React dan DOM maya meningkatkan prestasi dan kecekapan pembangunan aplikasi Netflix. 2) VUE digunakan dalam alat dalaman dan projek kecil Netflix, dan fleksibiliti dan kemudahan penggunaannya adalah kunci.

Vue.js di frontend: aplikasi dan contoh dunia nyataVue.js di frontend: aplikasi dan contoh dunia nyataApr 11, 2025 am 12:12 AM

Vue.js adalah rangka kerja JavaScript yang progresif yang sesuai untuk membina antara muka pengguna yang kompleks. 1) Konsep terasnya termasuk data responsif, komponen dan DOM maya. 2) Dalam aplikasi praktikal, ia boleh ditunjukkan dengan membina aplikasi todo dan mengintegrasikan vuerouter. 3) Apabila debugging, disyorkan untuk menggunakan Vuedevtools dan Console.log. 4) Pengoptimuman prestasi boleh dicapai melalui V-IF/V-Show, senarai pengoptimuman rendering, pemuatan asynchronous komponen, dll.

Vue.js dan bertindak balas: Memahami perbezaan utamaVue.js dan bertindak balas: Memahami perbezaan utamaApr 10, 2025 am 09:26 AM

Vue.js sesuai untuk projek kecil dan sederhana, sementara React lebih sesuai untuk aplikasi besar dan kompleks. 1. Sistem responsif vue.js secara automatik mengemas kini DOM melalui pengesanan ketergantungan, menjadikannya mudah untuk menguruskan perubahan data. 2. Leact mengamalkan aliran data sehala, dan data mengalir dari komponen induk ke komponen kanak-kanak, menyediakan aliran data yang jelas dan struktur yang mudah dibuang.

See all articles

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.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

PhpStorm versi Mac

PhpStorm versi Mac

Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)