Vue 3入門指南


title: Vue 3入門指南
date: 2024/5/23 19:37:34
updated: 2024/5/23 19:37:34
categories:

  • 前端開發

tags:

  • 框架對比
  • 環境搭建
  • 基礎語法
  • 組件開發
  • 響應式系統
  • 狀態管理
  • 路由配置

在這里插入圖片描述

第1章:Vue 3簡介

1.1 Vue.js的歷史與發展

Vue.js由前谷歌工程師尤雨溪(Evan
You)在2014年發布。它的設計目標是提供一個輕量級、漸進式的JavaScript框架,用于構建用戶界面。Vue的核心庫專注于視圖層,易于上手,同時也便于與第三方庫或既有項目整合。隨著時間的推移,Vue.js因其簡潔的API、靈活的組件系統和高效的性能而受到開發者的廣泛歡迎。

1.2 Vue 3的新特性

Vue 3在2020年發布,帶來了許多重要的更新和改進:

  • Composition API:提供了一種更靈活的方式來組織和重用組件邏輯,特別是在處理復雜組件時。
  • 性能提升:通過優化虛擬DOM的算法和編譯時的優化,Vue 3在渲染大型應用時更加高效。
  • 更好的TypeScript支持:Vue 3的內部架構完全使用TypeScript重寫,提供了更好的類型推斷和集成。
  • Fragments:允許組件返回多個根節點,而不需要額外的包裝元素。
  • Teleport(傳送門) :允許將組件的內容渲染到DOM中的不同位置。
  • Suspense:一種新的內置組件,用于處理異步組件的加載狀態。
  • 響應式系統的重構:使用Proxy替代了Object.defineProperty,提高了響應式系統的性能和功能。

1.3 Vue 3與其他框架的比較

Vue 3與其他流行的前端框架(如React和Angular)相比,有其獨特的優勢和差異:

  • React:React是一個由Facebook開發的庫,以其高效的虛擬DOM算法和組件化開發模式而聞名。Vue
    3提供了更簡單的API和更直觀的模板語法,而React則依賴于JSX。Vue 3的Composition API在某些方面類似于React的Hooks,但提供了更多的靈活性和控制。
  • Angular:Angular是一個由Google開發的全功能框架,提供了大量的內置功能,如依賴注入、表單處理和路由。Vue
    3相比之下更加輕量級,易于上手,但仍然提供了足夠的工具和庫來構建復雜的應用。Angular的學習曲線較陡峭,而Vue 3則更加平滑。

每個框架都有其適用的場景和優勢,選擇哪個框架通常取決于項目需求、團隊熟悉度和個人偏好。Vue 3因其平衡的性能、靈活性和易用性,成為了許多開發者的首選。

第2章:環境搭建與項目初始化

2.1 安裝Node.js和npm

Node.js是一個開源的JavaScript運行環境,它允許在服務器端運行JavaScript代碼。npm(Node Package
Manager)是隨Node.js一同發布的包管理器,用于安裝和管理JavaScript項目的依賴。如果你尚未安裝,可以訪問官方網站(https://nodejs.org/)下載適合你操作系統的安裝包。安裝完成后,可以通過命令行驗證Node.js和npm是否已安裝:

node -v  # 顯示Node.js版本
npm -v  # 顯示npm版本

2.2 安裝Vue CLI

Vue CLI(Vue Create App)是Vue.js官方推薦的項目初始化工具,它能快速創建并配置Vue 3項目。在終端或命令提示符中,運行以下命令安裝Vue
CLI全球:

npm install -g @vue/cli

或者使用yarn:

yarn global add @vue/cli

安裝完成后,可以使用vue create命令創建新項目。

2.3 創建Vue 3項目

創建新項目時,可以使用以下命令,其中my-project是你的項目名:

vue create my-project

它會詢問你選擇哪些特性,如是否包含路由、Vuex和測試等。選擇完成后,Vue CLI會自動下載并配置項目。

2.4 項目結構概覽

Vue CLI生成的項目結構通常包含以下主要部分:

  • src/:源代碼目錄,包含應用的核心邏輯和組件。

    • main.js:入口文件,啟動應用。
    • components/:存放應用的組件。
    • views/(或pages/):存放應用的主要視圖或頁面。
    • router/:存放應用的路由配置。
  • public/:靜態資源目錄,如HTML、CSS和JavaScript文件。

  • package.json:項目依賴和配置信息。

  • .env(或.env.production):環境變量配置文件。

  • vue.config.js:自定義配置文件,用于調整構建設置。

在開發過程中,你可以根據需要添加、修改或刪除這個結構中的文件和目錄。Vue CLI會根據這些結構生成構建過程,確保項目的可維護性和擴展性。

第3章:Vue 3基礎

3.1 Vue實例與生命周期

在Vue中,每個應用都是通過創建Vue實例來啟動的。Vue實例是Vue應用的根組件,它包含了數據、模板、掛載元素、方法、生命周期鉤子等選項。生命周期鉤子是Vue實例在創建、更新和銷毀過程中自動調用的函數,允許你在特定階段執行自定義邏輯。

例如,created鉤子在實例被創建后立即調用,而mounted鉤子在實例掛載到DOM后調用。

new Vue({data: {message: 'Hello Vue!'},created() {console.log('實例創建完成');},mounted() {console.log('實例已掛載到DOM');}
});

3.2 模板語法

Vue使用基于HTML的模板語法,允許開發者聲明式地將DOM綁定到底層Vue實例的數據。Vue模板是語法層面的純粹HTML,會被Vue解析器解析為渲染函數,生成虛擬DOM并最終渲染成真實DOM。


<div id="app">{{ message }}
</div>

3.3 數據綁定與響應式原理

Vue的核心特性之一是響應式數據綁定。當實例的數據發生變化時,視圖會自動更新。這是通過使用ES5的Object.defineProperty
方法將數據屬性轉換為getter/setter來實現的。

new Vue({data: {message: 'Hello Vue!'}
});

3.4 計算屬性與偵聽器

計算屬性是基于它們的依賴進行緩存的,只有在相關依賴發生改變時才會重新求值。這使得計算屬性在處理復雜邏輯時比普通方法更高效。

new Vue({data: {firstName: 'Foo',lastName: 'Bar'},computed: {fullName() {return this.firstName + ' ' + this.lastName;}}
});

偵聽器(watch)用于觀察和響應Vue實例上的數據變動。當你有一些數據需要隨著其他數據變動而變動時,使用偵聽器非常合適。

new Vue({data: {message: 'Hello Vue!'},watch: {message(newVal, oldVal) {console.log('Message changed:', newVal, oldVal);}}
});

3.5 條件渲染與列表渲染

Vue提供了v-ifv-elsev-show指令來控制元素的顯示與隱藏。v-if在條件變化時會完全移除或插入元素,而v-show
只是簡單地切換元素的CSS屬性display


<div v-if="seen">現在你看到我了</div>
<div v-show="seen">現在你看到我了</div>

列表渲染通過v-for指令實現,它可以遍歷數組、對象甚至整數。


<ul><li v-for="item in items" :key="item.id">{{ item.text }}</li>
</ul>

3.6 事件處理

Vue使用v-on指令(簡寫為@)來監聽DOM事件,并在觸發時執行一些JavaScript代碼。


<button v-on:click="counter += 1">增加 1</button>

3.7 表單輸入綁定

Vue提供了v-model指令,用于在表單控件(如<input><textarea><select>)和Vue實例的數據之間創建雙向數據綁定。

<input v-model="message" placeholder="編輯我">
<p>Message is: {{ message }}</p>

這些基礎知識是理解和使用Vue 3進行開發的關鍵。通過這些概念和工具,你可以開始構建功能豐富的Vue應用。

第4章:組件化開發

4.1 組件基礎

在Vue中,組件是可復用的Vue實例。組件可以擁有自己的數據、方法、生命周期鉤子等,并且可以被其他組件包含或嵌套。組件通過<component>
標簽或在模板中直接使用組件的標簽來使用。


<my-component></my-component>

在Vue 3中,組件的定義使用defineComponent函數,這提供了一種類型安全的定義方式。

const MyComponent = defineComponent({
data() {
return {
message: 'Hello'
};
},
template: '
<div>{{ message }}</div>'
});

4.2 組件通信

Vue組件之間的通信有多種方式,包括父子組件通過props和事件通信,以及祖先與后代組件間的通信通過provide / inject或事件總線。

父子組件通過props傳遞數據,子組件可以通過事件向父組件發送消息。


<child-component :parent-message="message" @child-event="handleChildEvent"></child-component>

4.3 插槽(Slots)

插槽允許開發者向組件的模板中插入內容。插槽的內容會被插入到組件的<slot>標簽中。


<template><div><slot></slot></div>
</template>

使用插槽時,你可以為插槽提供默認內容,如果組件的使用者沒有提供內容,則默認內容會顯示。


<template><div><slot>默認內容</slot></div>
</template>

4.4 動態組件與異步組件

動態組件允許你在運行時根據條件切換組件。通過<component>標簽的is屬性,你可以指定當前要顯示的組件。


<component :is="currentComponent"></component>

異步組件則是先加載組件的定義,而不是立即渲染。這在加載較大或者可能不存在的組件時非常有用。

const AsyncComponent = defineAsyncComponent(() =>import('./MyComponent.vue')
);

第5章:Vue 3的響應式系統與Composition API

5.1 響應式基礎

Vue 3的響應式系統是基于數據劫持和依賴收集機制。當數據發生變化時,Vue會自動更新視圖。這主要依賴于reactiveref

5.2 Composition API簡介

Composition API是Vue 3引入的新的編程模型,它通過函數式編程的方式,將組件的邏輯分解為一系列函數,如setuponMounted
等,而不是傳統的createdmounted這樣的生命周期鉤子。這使得代碼更易于理解和測試。

5.3 使用ref和reactive創建響應式數據

  • ref:用于創建響應式的變量,它返回一個對象,包含當前值和value屬性,可以用來直接修改值。
const count = ref(0);
count.value = 10; // 監聽count的變化
  • reactive:用于創建響應式對象,對象的所有屬性都會被追蹤。
const obj = reactive({count: 0});
obj.count = 10; // 監聽obj.count的變化

5.4 使用computed和watch

  • computed:用于創建計算屬性,它會根據依賴的值自動計算并返回結果,且只在依賴值改變時重新計算。
const doubleCount = computed(() => obj.count * 2);
  • watch:用于監聽數據變化,可以執行特定的函數,但它不會自動響應數據的改變。
watch(obj.count, (newCount) => {console.log('Count changed:', newCount);
});

5.5 生命周期鉤子與Composition API

在Composition API中,生命周期鉤子被替換為更靈活的函數,如setuponMountedonUnmounted等。這些函數在組件實例創建、掛載、卸載時執行。

setup()
{const count = ref(0);onMounted(() => {// 在組件掛載后執行});
}

5.6 自定義Hooks

雖然Vue官方推薦使用Composition API,但你也可以自定義類似Hook的函數來組織代碼,但這些不是官方提供的API,而是開發者實踐中的常見做法。

function useCount(initialValue) {const count = ref(initialValue);// ...return {count};
}

在使用時:

const {count} = useCount(0);

這有助于將組件邏輯分解為更小、更可復用的部分。

第6章:高級特性

6.1 渲染函數與JSX

渲染函數是一種用于渲染Vue組件的替代方法,它允許你在JavaScript函數中直接定義組件的渲染輸出。JSX是一種在JavaScript中編寫HTML的語法,可以更方便地編寫渲染函數。

6.2 自定義指令

自定義指令是Vue中定義的一種底層的擴展機制,可以用來在組件中對普通DOM元素進行低級別操作。

6.3 過渡與動畫

Vue提供了一系列內置的過渡和動畫效果,包括transitiontransition-group等。可以使用CSS或JavaScript來實現過渡和動畫效果。

6.4 混入(Mixins)

混入是一種在組件之間復用代碼的方式,它允許在多個組件中重用一組相同的選項。混入可以包含數據、方法、生命周期鉤子等,但需要注意有時候可能會導致數據沖突。

6.5 插件開發

插件是一種Vue的擴展機制,它可以在Vue的構造函數上添加全局方法、指令、過濾器等。開發插件需要遵循一定的規范,如提供一個安裝函數,并在安裝時調用Vue實例的use
方法。

const MyPlugin = {install(Vue) {Vue.directive('my-directive', {bind(el, binding, vnode) {// ...}});}
};Vue.use(MyPlugin);

第7章:狀態管理與Vuex

7.1 Vuex簡介

Vuex是一個專為Vue.js應用程序開發的狀態管理模式。它采用集中式存儲管理應用的所有組件的狀態,并以相應的規則保證狀態以一種可預測的方式發生變化。

7.2 安裝與配置Vuex

要使用Vuex,首先需要通過npm或yarn安裝Vuex庫。安裝完成后,在Vue項目中創建一個Vuex實例,并將其作為插件安裝到Vue應用中。

npm install vuex --save
import Vue from 'vue';
import Vuex from 'vuex';Vue.use(Vuex);const store = new Vuex.Store({// 狀態、getters、mutations和actions配置
});new Vue({el: '#app',store,// ...
});

7.3 State、Getters、Mutations和Actions

  • State:存儲應用狀態的對象。
  • Getters:從state中派生出一些狀態,類似于計算屬性。
  • Mutations:更改state中狀態的唯一方法,必須是同步函數。
  • Actions:類似于mutations,但可以包含任意異步操作,并通過提交mutations來改變狀態。
const store = new Vuex.Store({state: {count: 0},getters: {doubleCount(state) {return state.count * 2;}},mutations: {increment(state) {state.count++;}},actions: {incrementAsync({commit}) {setTimeout(() => {commit('increment');}, 1000);}}
});

7.4 Modules

當應用變得復雜時,可以將store分割成模塊(modules)。每個模塊擁有自己的state、getters、mutations和actions。

const moduleA = {state: {...},getters: {...},mutations: {...},actions: {...}
};const store = new Vuex.Store({modules: {a: moduleA}
});

7.5 Vuex與Composition API

Vuex與Vue 3的Composition API可以很好地結合使用。使用setup函數時,可以通過useStore函數來訪問Vuex store。

import {useStore} from 'vuex';export default {setup() {const store = useStore();// 使用store}
};

Vuex提供了一種集中式存儲管理應用狀態的方式,使得狀態的變化可以被追蹤,并且可以方便地在組件之間共享狀態。通過合理地使用Vuex,可以提高應用的可維護性和可擴展性。

第8章:Vue Router

8.1 Vue Router簡介

Vue Router是Vue.js官方的路由管理器。它與Vue.js的核心深度集成,讓構建單頁面應用變得易如反掌。

8.2 安裝與配置Vue Router

要使用Vue Router,首先需要通過npm或yarn安裝Vue Router庫。安裝完成后,在Vue項目中創建一個路由器實例,并將其安裝到Vue應用中。

npm install vue-router --save
import Vue from 'vue';
import VueRouter from 'vue-router';Vue.use(VueRouter);const router = new VueRouter({// 路由配置
});new Vue({el: '#app',router,// ...
});

8.3 路由配置

在路由器實例中,可以配置多個路由,每個路由都對應一個組件。

const router = new VueRouter({routes: [{path: '/',name: 'Home',component: HomeView},{path: '/about',name: 'About',component: AboutView}]
});

8.4 導航守衛

導航守衛主要用于過濾不符合條件的導航,或者在導航前后執行一些操作。

  • 全局前置守衛:在路由導航發生之前調用,可以通過beforeEach函數進行配置。
const router = new VueRouter({// ...
});router.beforeEach((to, from, next) => {// ...
});
  • 路由獨享守衛:在路由配置中,通過beforeEnter函數進行配置。
const router = new VueRouter({routes: [{path: '/',name: 'Home',component: HomeView,beforeEnter: (to, from, next) => {// ...}}]
});
  • 組件內守衛:在組件內,通過beforeRouteEnterbeforeRouteUpdatebeforeRouteLeave函數進行配置。
export default {beforeRouteEnter(to, from, next) {// ...},beforeRouteUpdate(to, from, next) {// ...},beforeRouteLeave(to, from, next) {// ...}
};

8.5 路由懶加載

在路由配置中,可以使用動態導入(import)語法,將組件按需加載,以實現路由懶加載。

const router = new VueRouter({routes: [{path: '/',name: 'Home',component: () => import('@/views/HomeView.vue')}]
});

路由器提供了一種強大的方式,用于管理應用的導航和狀態。通過合理地使用Vue Router,可以提高應用的性能和可維護性。

第9章:構建與部署

9.1 使用Vue CLI進行構建

Vue CLI是Vue.js的官方構建工具,提供了一系列的工具和功能,用于構建生產環境的Vue應用。

要使用Vue CLI構建生產環境的Vue應用,需要執行以下步驟:

  1. 在應用的根目錄下,運行npm run build命令。
  2. 構建后的文件將位于dist目錄下。
  3. dist目錄中的文件部署到服務器上。

9.2 分析與優化生產構建

在構建生產環境的Vue應用時,可以使用Vue CLI提供的分析報告,來分析應用的構建情況。

  1. 在應用的根目錄下,運行npm run build --report命令。
  2. dist目錄下會生成一個report.html文件,該文件包含了應用的構建報告。
  3. 根據報告中的信息,可以對構建進行優化。

9.3 部署Vue應用

在構建完成后,可以將dist目錄中的文件部署到服務器上。部署方式取決于服務器的類型和配置,常見的部署方式包括:

  • 靜態服務器:將dist目錄中的文件直接放到靜態服務器上,例如Nginx或Apache。
  • Node.js服務器:將dist目錄中的文件放到Node.js服務器上,并使用express.static中間件進行服務。
const express = require('express');
const app = express();app.use(express.static('dist'));app.listen(3000, () => {console.log('Server listening on port 3000!');
});
  • 云服務器:將dist目錄中的文件放到云服務器上,例如AWS S3、Azure Blob Storage或Google Cloud Storage。

在部署Vue應用時,需要注意以下問題:

  • URL路徑:確保服務器的URL路徑與應用的構建路徑一致,以避免資源加載失敗。
  • SSL證書:確保服務器使用正確的SSL證書,以確保應用的安全性。
  • CDN加速:使用CDN加速,可以提高應用的加載速度。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/13452.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/13452.shtml
英文地址,請注明出處:http://en.pswp.cn/web/13452.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java分支結構詳解

Java分支結構詳解 前言一、if 語句基本語法表示一表示二表示三 代碼示例判定一個數字是奇數還是偶數判定一個數字是正數還是負數判定某一年份是否是閏年 注意要點懸垂 else 問題代碼風格問題分號問題 二、switch 語句基本語法代碼示例根據 day 的值輸出星期 注意事項break 不要…

深入了解 Pandas:對象的缺少值

目錄 前言 第一點&#xff1a;導入模塊 第二點 &#xff1a;發現對象的缺失值 第二點&#xff1a;剔除缺少值 第三點&#xff1a;填補缺失值 總結 前言 在數據處理中&#xff0c;經常會遇到數據中存在缺失值的情況。處理缺失值是數據清洗的一個重要環節&#xff0c;能夠確…

spring常用知識點

1、攔截器和過濾器區別 1. 原理不同&#xff1a; 攔截器是基于java的反射機制&#xff0c;而過濾器采用責任鏈模式是基于函數回調的。 2. 使用范圍不同&#xff1a; 過濾器Filter的使用依賴于Tomcat等容器&#xff0c;導致它只能在web程序中使用 攔截器是一個Sping組件&am…

abs(-2147483648) == 2147483648?

從數學意義上&#xff0c;這是對的。但是&#xff0c;就怕但是。 #include int main() {long long v;v abs(-2147483648);printf("%lld\n", v);return 0; } 輸出: -2147483648 我們從source code中一一解開. /* Return the absolute value of I. */ int abs (…

Mongodb介紹及springboot集成增刪改查

文章目錄 1. MongoDB相關概念1.1 業務應用場景1.2 MongoDB簡介1.3 體系結構1.4 數據模型1.5 MongoDB的特點 2. docker安裝mongodb3. springboot集成3.1 文件結構3.2 增刪改查3.2.1 增加insert3.2.2 保存save3.2.3 更新update3.2.4 查詢3.2.5 刪除 1. MongoDB相關概念 1.1 業務…

Docker-Android安卓模擬器本地部署并實現遠程開發測試

文章目錄 1. 虛擬化環境檢查2. Android 模擬器部署3. Ubuntu安裝Cpolar4. 配置公網地址5. 遠程訪問小結 6. 固定Cpolar公網地址7. 固定地址訪問 本文主要介紹如何在Ubuntu系統使用Docker部署docker-android安卓模擬器&#xff0c;并結合cpolar內網穿透工具實現公網遠程訪問本地…

51建模網AR虛擬試用,讓網購不再只靠想象!

在數字化的浪潮中&#xff0c;網購已成為現代人生活的一部分。然而&#xff0c;傳統的網購模式常常因為無法直接試穿、試用商品&#xff0c;導致買家在收到商品后感到失望&#xff0c;特別是面對大件家居產品時&#xff0c;僅憑屏幕上的圖片和尺寸描述&#xff0c;很難準確地把…

智能AI愈發強大,企業如何防范AI網絡釣魚攻擊

隨著AI技術的快速發展&#xff0c;如ChatGPT等智能化工具在各個領域得到了廣泛應用。然而&#xff0c;這些工具的普及也給網絡安全帶來了新的挑戰。AI模型的自然語言生成功能使得網絡釣魚攻擊更加智能化和隱蔽化&#xff0c;攻擊者能夠利用AI技術生成高度逼真的欺騙性郵件和其他…

深度學習之基于YoloV5人體姿態摔倒識別分析報警系統

歡迎大家點贊、收藏、關注、評論啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代碼。 文章目錄 一項目簡介 二、功能三、系統四. 總結 一項目簡介 一、項目背景與意義 隨著人口老齡化的加劇和人們對健康安全的日益關注&#xff0c;摔倒事件在老年人、幼兒、體育運…

2024-05-23 服務器開發-windows-加載dll動態庫

摘要: 2024-05-23 服務器開發-windows-加載dll動態庫 使用 LoadLibrary HMODULE mdl ::LoadLibrary(L"mylib.dll");if (!mdl){auto err ::GetLastError();std::cout << "ERROR: load VxCfgClient fail, error: " << err << std::endl…

分布式文件系統minIo

分布式文件系統 什么是分布式文件系統 一個計算機無法存儲海量的文件&#xff0c;通過網絡將若干計算機組織起來共同去存儲海量的文件&#xff0c;去接收海量用戶的請求&#xff0c;這些組織起來的計算機通過網絡進行通信&#xff0c;如下圖&#xff1a; 好處&#xff1a; 1、…

怎么ai思維導圖自動生成?推薦這三個工具

怎么ai思維導圖自動生成&#xff1f;隨著人工智能&#xff08;AI&#xff09;技術的不斷發展&#xff0c;其在各個領域的應用也日益廣泛。在思維導圖這一領域&#xff0c;AI技術的引入不僅極大地提高了制圖效率&#xff0c;還為用戶提供了更多樣化、個性化的制圖體驗。本文將為…

JavaScript身份三要素認證API、身份證二要素實名認證接口

996這種工作模式&#xff0c;試問有多少人愿意接受&#xff1f;然而這種工作制度在程序員的圈子里早已成為不成文的“規定”。網絡段子也有不少調侃程序員的&#xff0c;比如&#xff1a;一程序員去面試&#xff0c;面試官問&#xff1a;“你畢業才兩年&#xff0c;這三年工作經…

基于消息中間件的異步通信機制在系統解耦中的優化與實現

??謝謝大家捧場&#xff0c;祝屏幕前的小伙伴們每天都有好運相伴左右&#xff0c;一定要天天開心哦&#xff01;?? &#x1f388;&#x1f388;作者主頁&#xff1a; 喔的嘛呀&#x1f388;&#x1f388; ?? 帥哥美女們&#xff0c;我們共同加油&#xff01;一起進步&am…

【只會for循環? 來看下, Nodejs中典型的5種循環方式】

Nodejs中的&#xff0c;除了經典的for循環 , 其實還有幾種好用的循環方式&#xff0c; 并有典型的使用場景。下面來一起看下&#x1f447;&#x1f3fb; 5種循環用法 For Loop&#xff1a;這是最常見的循環方式&#xff0c;適用于你知道循環次數的情況。 for (let i 0; i &…

GPT-SoVITS語音克隆部署與使用

GPT-SoVITS是一款強大的少量樣本語音轉換與語音合成開源工具。當前&#xff0c;GPT-SoVITS實現了如下幾個方面的功能&#xff1a; 由參考音頻的情感、音色、語速控制合成音頻的情感、音色、語速可以少量語音微調訓練&#xff0c;也可不訓練直接推理可以跨語種生成&#xff0c;…

【AI】試用 ai 提取文章內容嘗試

電梯產業面臨這樣一個問題&#xff0c;因為太多的品牌&#xff0c;將近 400 多個&#xff0c;甚至有寶馬&#xff0c;奧迪&#xff0c;你敢相信&#xff0c;一家造汽車的造過電梯?不過好像想想也是&#xff0c;電梯是第二大交通工具&#xff0c;電梯從某種意義上來說&#xff…

無網環境禁止 WPS 提示登錄,且基本功能按鈕可用

目前 WPS 升級后&#xff0c;每次打開都會提示你登錄 WPS&#xff0c;并且在未登錄之前所有基本功能按鈕是置灰狀態&#xff0c;無法使用。 如此一來&#xff0c;在內網或無網環境&#xff0c;我們無法登陸 WPS &#xff0c;就給我們的使用帶來了極大的不便&#xff0c;那么有沒…

全網最全面的由淺到深的Kotlin基礎教程(七)

前言 本篇文章接著上一篇文章全網最全面的由淺到深的Kotlin基礎教程&#xff08;六&#xff09;繼續進階學習kotlin&#xff0c;建議看完上一篇文章&#xff0c;再來看本篇文章。本篇主要分析一些常用的kotlin函數源碼&#xff0c;以及用kotlin簡單實現Rxjava的幾個操作符。堅…

卡梅德生物噬菌體展示多肽庫

噬菌體展示多肽文庫在新藥發現領域展現出巨大的潛力和應用價值。卡梅德生物的噬菌體展示肽庫通過將大量肽序列插入到噬菌體基因組中&#xff0c;并在噬菌體表面展示這些肽&#xff0c;構建了一個多樣性的肽庫。 在新藥發現過程中&#xff0c;噬菌體展示多肽文庫可以用于篩選具有…