0


前端教程:如何写 Vue 3 页面

如何写 Vue 3 页面

目录

引言

Vue.js 是一个流行的前端框架,广泛用于构建用户界面和单页应用程序。Vue 3 是其最新版本,带来了许多新特性和改进。本教程将详细介绍如何使用 Vue 3 创建页面,从基础知识到高级特性,帮助你快速上手。

Vue 3 概述

Vue 3 的新特性

Vue 3 引入了一些重要的新特性,包括:

  • 组合 API:提供了一种更灵活的方式来组织组件逻辑。
  • 性能提升:相较于 Vue 2,Vue 3 在性能上有显著提升。
  • 更好的 TypeScript 支持:Vue 3 对 TypeScript 的支持更加完善。
  • Fragment:允许组件返回多个根节点。

Vue 3 的安装

要使用 Vue 3,你需要确保你的开发环境中安装了 Node.js 和 npm。可以通过以下命令检查:

  1. node -v
  2. npm -v

如果未安装,可以前往 Node.js 官网 下载并安装。

创建 Vue 3 项目

使用 Vue CLI 创建项目

Vue CLI 是一个强大的工具,可以帮助你快速创建 Vue 项目。以下是使用 Vue CLI 创建 Vue 3 项目的步骤:

  1. 安装 Vue CLI:npminstall -g @vue/cli
  2. 创建新项目:vue create my-vue3-app
  3. 选择 Vue 3 配置。

使用 Vite 创建项目

Vite 是一个新兴的构建工具,支持快速开发和构建。使用 Vite 创建 Vue 3 项目的步骤如下:

  1. 安装 Vite:npm create vite@latest my-vue3-app --template vue
  2. 进入项目目录并安装依赖:cd my-vue3-appnpminstall
  3. 启动开发服务器:npm run dev

Vue 3 组件基础

组件的定义与注册

在 Vue 中,组件是构建用户界面的基本单元。以下是定义和注册组件的示例:

  1. // HelloWorld.vue<template><h1>Hello,{{ name }}!</h1></template><script>exportdefault{
  2. props:{
  3. name: String
  4. }}</script>

在父组件中注册:

  1. <template><HelloWorld name="Vue 3"/></template><script>import HelloWorld from'./HelloWorld.vue';exportdefault{
  2. components:{
  3. HelloWorld
  4. }}</script>

组件的生命周期

Vue 组件有一系列生命周期钩子,可以在组件的不同阶段执行代码。常用的生命周期钩子包括:

  • created:组件实例被创建后调用。
  • mounted:组件挂载到 DOM 后调用。
  • updated:组件更新后调用。
  • beforeDestroy:组件销毁前调用。

示例:

  1. exportdefault{data(){return{
  2. message:'Hello Vue!'}},created(){
  3. console.log('Component created');},mounted(){
  4. console.log('Component mounted');}}

Vue 3 的响应式系统

响应式数据

Vue 3 的响应式系统基于 Proxy 实现,提供了更好的性能和灵活性。可以使用

  1. ref

  1. reactive

创建响应式数据。

  1. import{ ref, reactive }from'vue';const count =ref(0);const state =reactive({ name:'Vue 3'});

计算属性

计算属性是基于响应式数据计算得出的值,只有在依赖的响应式数据变化时才会重新计算。

  1. import{ computed }from'vue';const fullName =computed(()=>`${state.firstName}${state.lastName}`);

侦听器

侦听器用于观察响应式数据的变化,并在变化时执行特定的操作。

  1. import{ watch }from'vue';watch(count,(newValue, oldValue)=>{
  2. console.log(`Count changed from ${oldValue} to ${newValue}`);});

Vue 3 的组合 API

setup 函数

  1. setup

函数是组合 API 的核心,所有的响应式状态和计算属性都在这里定义。

  1. exportdefault{setup(){const count =ref(0);constincrement=()=> count.value++;return{ count, increment };}}

ref 和 reactive

  • ref 用于创建基本数据类型的响应式引用。
  • reactive 用于创建对象的响应式状态。
  1. const count =ref(0);const state =reactive({ name:'Vue 3'});

自定义组合函数

可以将逻辑提取到自定义组合函数中,以便在多个组件中复用。

  1. functionuseCounter(){const count =ref(0);constincrement=()=> count.value++;return{ count, increment };}

Vue 3 路由

安装 Vue Router

使用 Vue Router 进行页面导航。首先安装 Vue Router:

  1. npminstall vue-router

配置路由

在项目中配置路由:

  1. import{ createRouter, createWebHistory }from'vue-router';import Home from'./views/Home.vue';import About from'./views/About.vue';const routes =[{ path:'/', component: Home },{ path:'/about', component: About }];const router =createRouter({
  2. history:createWebHistory(),
  3. routes
  4. });exportdefault router;

路由守卫

路由守卫用于控制路由访问权限,可以在路由配置中添加守卫。

  1. router.beforeEach((to,from, next)=>{if(to.meta.requiresAuth &&!isAuthenticated){next({ path:'/login'});}else{next();}});

Vue 3 状态管理

安装 Vuex

Vuex 是 Vue 的状态管理库,安装 Vuex:

  1. npminstall vuex

创建 Store

创建一个 Vuex Store 来管理应用的状态。

  1. import{ createStore }from'vuex';const store =createStore({
  2. state:{
  3. count:0},
  4. mutations:{increment(state){
  5. state.count++;}}});

使用 Store

在组件中使用 Vuex Store:

  1. import{ useStore }from'vuex';exportdefault{setup(){const store =useStore();constincrement=()=> store.commit('increment');return{ increment };}}

Vue 3 的样式处理

内联样式与 CSS 类

可以使用内联样式和 CSS 类来控制组件的样式。

  1. <template><div:style="{ color: active ? 'red' : 'blue' }">
  2. Hello World
  3. </div></template>

Scoped 样式

使用 scoped 样式可以确保样式只应用于当前组件。

  1. <stylescoped>h1{color: blue;}</style>

CSS Modules

CSS Modules 允许你使用局部作用域的 CSS 类。

  1. <template><div:class="$style.myClass">Hello World</div></template><stylemodule>.myClass{color: green;}</style>

Vue 3 的测试

单元测试

使用 Jest 和 Vue Test Utils 进行单元测试。

  1. import{ mount }from'@vue/test-utils';import HelloWorld from'@/components/HelloWorld.vue';test('renders props.msg when passed',()=>{const msg ='new message';const wrapper =mount(HelloWorld,{
  2. props:{ msg }});expect(wrapper.text()).toMatch(msg);});

端到端测试

使用 Cypress 进行端到端测试。

  1. describe('My First Test',()=>{it('Visits the app root url',()=>{
  2. cy.visit('/');
  3. cy.contains('Hello World');});});

总结

本教程详细介绍了如何使用 Vue 3 创建页面,从基础知识到高级特性。通过学习组件、响应式系统、组合 API、路由、状态管理、样式处理和测试等内容,你将能够构建出功能强大的 Vue 3 应用。希望这篇教程能帮助你更好地理解和使用 Vue 3。


本文转载自: https://blog.csdn.net/A15216110998/article/details/143858510
版权归原作者 LensonYuan 所有, 如有侵权,请联系我们删除。

“前端教程:如何写 Vue 3 页面”的评论:

还没有评论