Vue
Vue.js(简称 Vue)是一种开源的轻量级 JavaScript 框架,由 Evan You 于2014年首次发布。Vue 致力于在用户界面(UI)开发中实现数据与视图的双向绑定,为创建现代化 Web 应用、单页面应用(SPA)以及多种复杂界面提供了一种简洁、高效且可扩展的解决方案。
#### 核心特性
- **组件化:** Vue 包含了独立的、可复用的组件,有助于将 UI 切成逻辑部分、提高代码质量。
- **双向数据绑定:** 利用双向数据绑定,Vue 能自动更新 UI,对应数据模型发生改变时同步更新视图。
- **声明式渲染:** 编写模板完成数据驱动的视图,自动追踪依赖关系,并且在数据模型发生更改时仅重新计算最小必要部分。
- **虚拟DOM:** 通过 Vue 的虚拟 DOM 进行更效率的视图更新,降低视图更新所需的计算量。
- **响应式系统:** Vue 拥有一个响应式系统,当数据更改时会自动跟踪和更新所有相关视图。
- **易于集成:** Vue 可与其他 JavaScript 库或现有项目相互集成,同时方便和流行的前端工具链合作。
#### 主要模块
- **Vue Router:** 官方提供的路由管理器,有助于构建单页面应用程序。
- **Vuex:** 是一个状态管理库,有助于简化和规范在组件之间共享的数据和方法。
- **Vue CLI:** 是一个命令行工具,匹配各种扩展,有助于快速搭建 Vue 项目,包括开发、构建和部署。
#### 适用场景
- 单页面应用(SPA)开发:在单一页面中完成路由切换、状态管理和 UI 渲染等流程。
- Web 应用程序开发: Vue 可与其他库如 Axios 结合,方便地建立发起 HTTP 请求的 API 客户端。
- 组件库和 UI 框架:借助 Vue 的组件系统,可以构建封装的、具有丰富功能的 UI 组件和框架。
- 原型开发:使用 Vue 快速构建和验证产品原型,提高开发效率。
Vue 因易于入门、高度灵活、丰富的生态系统以及优异的性能而受到许多开发者的欢迎,是 Web 开发领域一种非常值得学习的前端框架。
![Vue](https://cdn.fmlg1688.cn/levenx-world/BkTNgU_EAFFLVlFt.png)
查看更多相关内容
如何使用 vite 和 vue3 构建 uniapp 组件库?
### 使用Vite和Vue3构建UniApp组件库的步骤
#### 1. 环境搭建与初始化项目
首先需要确保已安装Node.js和npm。然后使用Vite来初始化一个新的Vue 3项目。
```bash
npm create vite@latest my-uniapp-library --template vue
cd my-uniapp-library
npm install
```
#### 2. 安装UniApp相关依赖
UniApp是一个使用Vue.js开发所有前端应用的框架,支持通过条件编译等方式兼容多端。为了确保组件库能在UniApp中使用,我们需要安装相关依赖。
```bash
npm install @dcloudio/vue-cli-plugin-uni @dcloudio/uni-mp-vue
```
#### 3. 配置Vite
为了让Vite支持UniApp的编译,需要在`vite.config.js`中进行相应配置。
```javascript
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import uni from '@dcloudio/vite-plugin-uni'
export default defineConfig({
plugins: [vue(), uni()]
})
```
#### 4. 创建和管理组件
在项目中创建一个`components`文件夹,用于存放所有的组件。例如,创建一个名为`MyButton.vue`的按钮组件:
```vue
<template>
<button class="my-button">{{ label }}</button>
</template>
<script>
export default {
name: 'MyButton',
props: {
label: String,
},
}
</script>
<style scoped>
.my-button {
padding: 10px;
border: none;
background-color: #007BFF;
color: white;
border-radius: 5px;
}
</style>
```
#### 5. 组件导出
在`components/index.js`中统一导出所有组件,这样可以在使用时通过单一入口引入。
```javascript
import MyButton from './MyButton.vue';
export { MyButton };
```
#### 6. 测试和打包
为了确保组件库的质量,需要编写单元测试。可以使用`jest`和`@vue/test-utils`。
```bash
npm install jest @vue/test-utils vue-jest@next @vue/vue3-jest babel-jest -D
```
配置Jest并编写测试。完成后,使用Vite提供的构建命令来打包组件库:
```bash
npm run build
```
#### 7. 发布到NPM
完成测试和打包后,可以将你的组件库发布到NPM,使得其他开发者也可以使用你的组件。
```bash
npm login
npm publish
```
#### 8. 文档编写
最后,为了使你的组件库易于使用,编写清晰的文档是非常重要的。可以使用像Docz这样的工具来帮助生成优雅的文档。
### 结尾
以上就是使用Vite和Vue 3构建UniApp组件库的基本步骤。通过这种方式,你可以充分利用Vite的快速构建能力和Vue 3的最新特性,来创建高效且易于维护的组件库。
阅读 8 · 7月24日 20:23
如何在 Vue . Js 应用上存储私有 api 密钥?
在Vue.js应用程序中安全地存储私有API密钥是一个非常重要的问题,因为不当的存储方式可能导致密钥泄露,从而威胁到整个应用的安全性。以下是一些推荐的做法:
### 1. **环境变量**
一种常见的方法是使用环境变量来存储敏感数据。在开发环境中,这些变量可以存储在本地机器上,而在生产环境中,可以通过环境管理工具或云服务平台来设置。
**例子:**
在Vue.js项目中,你可以使用 `.env` 文件来存储环境变量:
```plaintext
# .env
VUE_APP_API_KEY=你的API密钥
```
然后在你的应用中,你可以通过 `process.env.VUE_APP_API_KEY` 来访问这个变量:
```javascript
axios.get(`https://api.example.com/data?api_key=${process.env.VUE_APP_API_KEY}`)
```
### 2. **服务器端代理**
如果你的Vue.js应用需要频繁地与API进行交互,考虑设置一个服务器端代理。这样,你可以在服务器上存储API密钥,并在代理中处理所有API请求,从而避免在客户端暴露密钥。
**例子:**
假设你使用Node.js作为后端,你可以使用Express来设置一个简单的代理:
```javascript
const express = require('express');
const axios = require('axios');
const app = express();
const API_KEY = process.env.API_KEY;
app.get('/api/data', async (req, res) => {
try {
const response = await axios.get(`https://api.example.com/data?api_key=${API_KEY}`);
res.json(response.data);
} catch (error) {
res.status(500).send('Error accessing external API');
}
});
app.listen(3000, () => console.log('Server is running'));
```
然后在Vue应用中,你只需要调用你的代理端点:
```javascript
axios.get('/api/data')
```
### 3. **安全存储服务**
对于更高级的应用,可以考虑使用专为安全存储敏感数据设计的服务,如AWS Secrets Manager或Azure Key Vault。这些服务提供了高级的安全特性,如自动密钥轮换和精细的访问控制。
**例子:**
如果使用AWS Secrets Manager,你可以在你的服务器代码中这样调用:
```javascript
const AWS = require('aws-sdk');
const client = new AWS.SecretsManager({
region: 'us-west-2'
});
async function getSecretValue(secretName) {
try {
const data = await client.getSecretValue({ SecretId: secretName }).promise();
if ('SecretString' in data) {
return JSON.parse(data.SecretString);
}
return null;
} catch (error) {
console.error(error);
return null;
}
}
// 使用
const apiKey = await getSecretValue('API/Key');
```
### 总结
确保在任何情况下都不要将私有API密钥直接存储在前端代码中。理想的情况是通过环境变量、服务器代理,或利用第三方安全存储服务来管理这些敏感数据。这样不仅可以防止密钥泄漏,还可以提高整个应用的安全性。
阅读 6 · 7月23日 15:29
Vue.js页面过渡渐变效果与Vue-router
### Vue.js页面过渡渐变效果
在Vue.js中,实现页面过渡和动画可以通过`<transition>`元素来实现。这个元素提供了多种方式来给元素和组件应用过渡效果。我们可以通过CSS过渡和动画或者JavaScript钩子来实现这些效果。
**CSS过渡示例**:
```html
<template>
<div>
<button @click="show = !show">Toggle</button>
<transition name="fade">
<p v-if="show">Hello Vue.js!</p>
</transition>
</div>
</template>
<script>
export default {
data() {
return {
show: false
};
}
}
</script>
<style>
.fade-enter-active, .fade-leave-active {
transition: opacity 0.5s;
}
.fade-enter, .fade-leave-to {
opacity: 0;
}
</style>
```
在上面的例子中,我们使用`.fade-enter-active`和`.fade-leave-active`来定义元素进入和离开的过渡效果时间和类型。`.fade-enter`和`.fade-leave-to`用来定义开始和结束时的状态。
### Vue-router与页面过渡
当结合Vue-router使用时,我们可以在路由视图(`<router-view>`)外套一个`<transition>`元素,这样就可以在路由之间进行平滑的过渡效果。
**路由过渡示例**:
```html
<template>
<div id="app">
<transition name="slide" mode="out-in">
<router-view></router-view>
</transition>
</div>
</template>
<style>
.slide-enter-active, .slide-leave-active {
transition: transform 0.5s ease;
}
.slide-enter, .slide-leave-to {
transform: translateX(100%);
}
</style>
```
在这个例子中,我们定义了一个名为`slide`的过渡效果。当路由改变时,新的页面会从右侧滑入,而旧的页面则滑出屏幕。
### 实际应用例子
在一款电商平台的后台管理系统中,我曾经负责优化用户界面并提升用户体验。通过使用Vue.js的过渡效果,我们对产品的添加、编辑界面做了渐变动画处理,让界面的变化不再那么生硬,从而使得用户的操作体验更加流畅和自然。每当切换到不同的产品类别或详细信息页面时,页面的内容会有一个渐入渐出的过渡效果,极大地提升了视觉效果和用户的满意度。
阅读 7 · 7月23日 11:28
vue-CLI中的插件是什么?
在Vue.js的生态系统中,Vue CLI是一个非常重要的工具,它通过命令行界面提供了创建和管理Vue.js项目的便捷方式。Vue CLI的一个核心特性就是它的插件系统。
### Vue CLI插件的作用
Vue CLI插件是一种扩展Vue.js项目功能的方式。它们可以添加新的配置选项、修改现有配置、引入额外的依赖库或者设置项目中使用的其他工具,如Babel、ESLint等。这些插件大大简化了配置过程,使开发者能够专注于业务逻辑的实现,而不必花太多时间在环境搭建上。
### 插件的实例
例如,如果你想在你的Vue项目中使用PWA(Progressive Web Apps)功能,你可以使用官方的`@vue/cli-plugin-pwa`插件。安装该插件后,它会自动配置你的项目支持PWA,包括添加一个Service Worker,配置manifest文件等,而你不需要手动编写这些配置,极大地简化了PWA的集成过程。
### 如何使用插件
使用Vue CLI插件通常分为两步:
1. **安装插件**:通过npm或yarn安装你需要的插件。例如,安装PWA插件的命令是:
```bash
vue add pwa
```
这个命令不仅安装了插件,还执行了插件的安装脚本,自动配置项目。
2. **配置插件(如果需要)**:虽然许多插件提供了默认配置,但你也可以在Vue项目的`vue.config.js`文件中进行自定义配置,以满足特定需求。
### 插件的好处
使用Vue CLI插件的好处包括:
- **简化配置**:自动化配置减少了设置时间和出错的可能性。
- **扩展性**:通过插件,你可以很容易地为项目添加新功能。
- **维护性**:插件由社区维护,确保与Vue生态系统的兼容性和更新。
总之,Vue CLI的插件系统是Vue开发过程中的一大利器,它通过简化和自动化项目配置,使得开发者可以更加高效和专注于构建高质量的Vue应用。
阅读 8 · 7月23日 11:27
什么是“v-once”指令,它与其他指令有何不同?
`v-once` 是 Vue.js 中的一个指令,其作用是在初次渲染时计算一次表达式的值,之后这个值将会被固定下来,即使数据发生变化,使用了 `v-once` 的节点也不会再次更新。这对于性能优化是非常有用的,特别是在渲染大量静态内容时,可以减少不必要的虚拟DOM重绘。
与其他常见的 Vue 指令如 `v-if`, `v-for`, `v-model` 和 `v-bind` 等相比,`v-once` 的主要区别在于它不会响应数据的变化。其他指令通常是用来实现数据绑定和视图更新的,即当数据发生变化时,视图也会相应地更新。例如:
- `v-if` 根据表达式的真值来决定是否渲染元素。
- `v-for` 用于渲染一个数据列表。
- `v-model` 用于在表单输入和应用状态之间创建双向绑定。
- `v-bind` 用于动态地绑定一个或多个属性,或者传递属性值到组件。
下面是一个 `v-once` 的使用示例:
```html
<div id="app">
<span v-once>初始计数:{{ initialCount }}</span>
<button @click="increment">点击增加</button>
<span>当前计数:{{ currentCount }}</span>
</div>
<script>
new Vue({
el: '#app',
data: {
initialCount: 0,
currentCount: 0
},
methods: {
increment() {
this.currentCount++;
}
}
});
</script>
```
在这个例子中,即使 `initialCount` 的值在组件的生命周期中被修改,使用了 `v-once` 的 `<span>` 元素仍然会保持显示初次渲染时的值。这表明 `v-once` 只关心一次性的内容渲染,不参与后续的数据更新响应,这有助于优化渲染性能,尤其是在静态内容较多的场景中。
阅读 7 · 7月23日 11:27
Vite 如何使用 sass
在使用Vite项目中集成和使用Sass非常简单。这里我将分步饰述如何在Vite项目中使用Sass:
### 步骤 1: 创建一个新的Vite项目
如果你还没有创建一个Vite项目,可以使用以下命令来创建一个新的项目:
```bash
npm create vite@latest my-vite-app --template vue
cd my-vite-app
npm install
```
这个例子中我使用了Vue作为框架,但Vite同时支持React, Vue, Svelte等多个流行框架。
### 步骤 2: 安装Sass
在你的Vite项目中,你需要安装sass包。可以通过npm或者yarn来安装:
```bash
npm install sass
```
或者
```bash
yarn add sass
```
### 步骤 3: 在你的组件中使用Sass
安装好sass之后,你就可以在项目中使用它了。例如,如果你使用的是Vue组件,你可以在`<style>`标签中指定`lang="scss"`或`lang="sass"`来告诉Vite你要使用Sass。
**Example.vue**:
```vue
<template>
<div class="example">
Hello, Vite with Sass!
</div>
</template>
<style lang="scss">
.example {
color: pink;
font-size: 20px;
background-color: black;
}
</style>
```
这样,你的`.vue`文件就可以使用Sass了。这里你可以使用Sass的全部功能,包括变量,嵌套规则,混入等。
### 步骤 4: 运行你的项目
一切设置完成后,就可以启动你的项目了:
```bash
npm run dev
```
这样你的Vite项目就能够正确编译Sass代码,并且你可以在浏览器中看到使用了Sass样式的组件。
### 总结
通过上述步骤,你可以看到在Vite中使用Sass是非常直接和简单的。只需安装相应的Sass包,并在项目中的样式部分指定使用`lang="scss"`或`lang="sass"`,Vite会自动处理好剩下的部分。这样可以让你的开发过程更高效,样式代码更加整洁有序。
阅读 9 · 7月20日 15:56
如何在 vuejs 和 webpack 中加载字体文件?
在Vue.js和Webpack中加载字体文件主要涉及到几个步骤,包括配置Webpack以处理字体文件类型,以及在Vue组件中适当地引用这些字体。下面我会详细解释每一步,并给出具体的代码示例。
### 步骤1:安装和配置Webpack
首先,确保你的项目中已经安装了Webpack。Vue CLI创建的项目默认已包含Webpack配置。如果你是手动设置Webpack,需确保已安装相关加载器,如`file-loader`或`url-loader`。
#### 安装加载器
在终端中运行以下命令来安装`file-loader`(如果尚未安装):
```bash
npm install --save-dev file-loader
```
### 步骤2:配置Webpack以处理字体文件
在Webpack配置文件(通常是`webpack.config.js`)中,你需要添加一个规则来处理字体文件。通常,字体文件包括`.woff`, `.woff2`, `.ttf`, `.eot`, `.svg`等格式。以下是如何配置这些规则的示例:
```javascript
module.exports = {
// 其他配置...
module: {
rules: [
{
test: /\.(woff2?|eot|ttf|otf|svg)(\?.*)?$/,
loader: 'file-loader',
options: {
name: 'fonts/[name].[hash:8].[ext]'
}
}
]
}
// 其他配置...
};
```
这个配置将所有字体文件移至构建输出的`fonts`文件夹中,并且每个文件名包括一个哈希值来保证版本控制和缓存更新。
### 步骤3:在Vue组件中引用字体
在Vue组件中,你可以通过CSS来引用配置好的字体。例如,如果你有一个字体文件叫做`MyFont.ttf`,你可以在你的Vue组件的`<style>`标签中这样使用它:
```css
<style>
@font-face {
font-family: 'MyFont';
src: url('~@/assets/fonts/MyFont.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
body {
font-family: 'MyFont', sans-serif;
}
</style>
```
这里的`~@`符号告诉Webpack这是一个模块请求,`@`是一个别名,通常指向`src`目录。
### 总结
通过这样的配置,Webpack会自动处理字体文件,并且确保这些文件被正确打包到最终的构建结果中。同时,在Vue组件中通过CSS引入自定义的字体,可以很方便地在整个应用程序中使用这些字体。这种方法不仅适用于本地字体文件,也适用于通过npm安装的字体库。
阅读 6 · 7月20日 14:25
如何使用 mixins 在多个 Vue . Js 组件之间共享方法?
在 Vue.js 中,`mixins` 是一个非常强大的功能,它允许开发者在多个组件中分享方法、数据、生命周期钩子等。当多个组件需要共享相同的逻辑或者行为时,使用 `mixins` 可以大大减少代码冗余和保持代码的可维护性。
### 如何创建和使用 mixins
**1. 定义一个 mixin:**
首先,你需要定义一个 mixin。这实际上就是一个普通的 JavaScript 对象,其中可以包含任何组件选项,例如 methods, computed properties, data, hooks 等。
```javascript
// mixins/commonMethods.js
export default {
methods: {
commonMethod() {
console.log('这是一个mixin中的方法');
}
}
}
```
**2. 在组件中使用 mixin:**
一旦定义了 mixin,你可以在一个或多个组件中使用它。使用 `mixins` 选项将其包含到组件中,这个选项接受一个数组,你可以在这里列出一个或多个 mixins。
```javascript
import commonMethods from './mixins/commonMethods';
export default {
mixins: [commonMethods],
methods: {
specificMethod() {
console.log('这是组件特有的方法');
}
},
created() {
this.commonMethod(); // 调用 mixin 中的方法
}
}
```
### 使用场景示例
假设我们有多个组件需要执行相同的数据格式化功能。我们可以创建一个 mixin 来处理数据格式化,然后在需要的每个组件中引入此 mixin。
```javascript
// mixins/dataFormatter.js
export default {
methods: {
formatData(data) {
return JSON.stringify(data, null, 2);
}
}
}
```
然后在多个组件中使用它:
```javascript
// components/ComponentA.vue
import dataFormatter from './mixins/dataFormatter';
export default {
mixins: [dataFormatter],
data() {
return {
rawData: { name: 'ChatGPT', type: 'AI' }
};
},
mounted() {
console.log(this.formatData(this.rawData));
}
}
```
### 注意事项
- 当 mixin 和组件含有同名选项时,如 methods,组件的选项将优先于 mixin 的选项。
- 使用 mixin 可能会使组件的来源不太清晰,特别是当一个组件使用了多个 mixin,而这些 mixin 之间还存在交叉逻辑时,所以使用时需要保持清晰和有序。
- 尽量保持 mixin 的粒度,避免一个 mixin 中包含太多逻辑,这样可以提高复用性并减少依赖。
通过上述方法和示例,我们可以见到使用 mixins 在 Vue.js 组件间共享方法的强大能力和灵活性。这不仅有助于代码复用,也让代码更加清晰和易于维护。
阅读 7 · 7月20日 00:21
Vue .js 如何使用 setTimeout?
在 Vue.js 中使用 `setTimeout` 是一个相对简单的任务,常用于在执行某些操作之前需要延迟一段时间,如异步更新界面、等待某些事件完成等情况。下面我将通过一个实际的例子来展示如何在 Vue.js 组件中使用 `setTimeout`。
### 示例场景
假设我们有一个需求,在页面加载完成后,我们需要延迟3秒钟然后显示一条欢迎消息。
### 步骤1: 创建Vue组件
首先,我们创建一个基本的 Vue 组件:
```vue
<template>
<div>
<h1 v-if="showMessage">欢迎来到我的网站!</h1>
</div>
</template>
<script>
export default {
data() {
return {
showMessage: false
};
},
mounted() {
this.displayMessage();
},
methods: {
displayMessage() {
setTimeout(() => {
this.showMessage = true;
}, 3000);
}
}
};
</script>
```
### 详细说明
1. **组件状态初始化**:
- 在 `data` 函数中,我们定义了一个叫做 `showMessage` 的数据属性,初始值为 `false`。这个属性用来控制消息的显示。
2. **挂载时调用**:
- 在 `mounted` 生命周期钩子中,我们调用 `displayMessage` 方法。`mounted` 钩子在组件挂载到 DOM 后执行,这是一个执行初始化操作的好时机。
3. **设置延时显示**
- 在 `displayMessage` 方法中,我们使用 `setTimeout` 设置了一个延时器。延时器设置为3秒后执行,执行的操作是将 `showMessage` 设置为 `true`。这会触发 Vue 的响应式系统,更新 DOM 以显示欢迎消息。
### 注意点
- 在使用 `setTimeout` 时,确保在组件销毁时清除未执行的延时器。这可以通过保存延时器的引用并在 `beforeDestroy` 钩子中使用 `clearTimeout` 来实现,从而避免可能的内存泄漏。
```javascript
export default {
data() {
return {
showMessage: false,
timer: null
};
},
mounted() {
this.displayMessage();
},
beforeDestroy() {
if (this.timer) {
clearTimeout(this.timer);
}
},
methods: {
displayMessage() {
this.timer = setTimeout(() => {
this.showMessage = true;
this.timer = null; // 清除引用
}, 3000);
}
}
};
```
通过以上的步骤和说明,我们可以在 Vue.js 组件中有效且安全地使用 `setTimeout` 来实现基于时间的动态交互。
阅读 4 · 7月20日 00:21
Vue . Js 如何使用 vue - router ?
### 使用 Vue Router 的步骤
Vue Router 是 Vue.js 的官方路由管理器。它和 Vue.js 的核心深度集成,使构建单页应用变得简单。以下是使用 Vue Router 的基本步骤:
#### 第一步:安装 Vue Router
如果你使用 npm 或 yarn,你可以通过命令行安装 Vue Router:
```bash
npm install vue-router
# 或者
yarn add vue-router
```
#### 第二步:创建路由器实例
你需要导入 Vue 和 Vue Router,然后使用 `Vue.use(Router)` 告诉 Vue 使用这个路由插件。
```javascript
import Vue from 'vue';
import Router from 'vue-router';
Vue.use(Router);
```
接下来,创建路由的配置。每一个路由都需要映射到一个组件。
```javascript
const routes = [
{ path: '/', component: Home },
{ path: '/about', component: About }
];
const router = new Router({
routes // (缩写)相当于 routes: routes
});
```
#### 第三步:创建 Vue 实例并传入 `router`
创建 Vue 实例时,需要把 `router` 配置传入。
```javascript
import Vue from 'vue';
import App from './App.vue';
import router from './router';
new Vue({
el: '#app',
router,
render: h => h(App)
});
```
#### 第四步:在组件内使用路由
在 Vue 组件内,你可以使用 `<router-link>` 和 `<router-view>`。`<router-link>` 用于生成一个链接,用户点击后会导航到一个新 URL。`<router-view>` 是一个容器,用来显示当前路由对应的组件。
```vue
<template>
<div>
<h1>主页</h1>
<router-link to="/about">关于我们</router-link>
<router-view></router-view>
</div>
</template>
```
#### 示例说明
假设有一个简单的 Vue 应用,包括两个页面:主页和关于页。当用户点击“关于我们”,页面会展示关于我们的内容,而不会重新加载页面。
**路由配置 (`router/index.js`):**
```javascript
import Vue from 'vue';
import Router from 'vue-router';
import Home from '../components/Home.vue';
import About from '../components/About.vue';
Vue.use(Router);
export default new Router({
routes: [
{
path: '/',
name: 'Home',
component: Home
},
{
path: '/about',
name: 'About',
component: About
}
]
});
```
**Vue 应用入口 (`main.js`):**
```javascript
import Vue from 'vue';
import App from './App.vue';
import router from './router';
new Vue({
router,
render: h => h(App)
}).$mount('#app');
```
**App 组件 (`App.vue`):**
```vue
<template>
<div id="app">
<router-link to="/">首页</router-link>
<router-link to="/about">关于</router-link>
<router-view/>
</div>
</template>
```
通过以上步骤,我们成功地在 Vue 应用中集成了 Vue Router,实现了基本的路由功能。这种单页应用的路由管理方式可以使用户体验更流畅,页面切换无需重新加载,提高了应用的性能。
阅读 16 · 7月20日 00:19