当前位置: 首页 > news >正文

Vue CLI,Vue Router,Vuex

前言

Vue CLI、Vue Router 和 Vuex 都是 Vue.js 生态系统中的重要组成部分,它们在构建 Vue 应用程序时扮演着关键角色。

Vue CLI

Vue CLI 介绍

Vue CLI 是 Vue.js 的官方命令行工具,用于快速搭建 Vue.js 项目。它提供了一个图形界面(通过 vue ui 命令访问),以及一个命令行界面,允许开发者通过简单的命令来生成和管理 Vue 项目。Vue CLI 支持各种项目配置,包括单文件组件(SFCs)、路由、状态管理、构建工具配置等。

安装与创建项目

  1. 安装 Vue CLI

    • 通过 npm 或 yarn 安装 Vue CLI:
      npm install -g @vue/cli  或 yarn global add @vue/cli
  2. 创建新项目

    • 使用 Vue CLI 创建新项目(在想创建vue项目的位置打开终端):
      vue create my-project
    • 跟随提示选择预设配置或手动选择特性。

项目结构

  • src:存放所有的源代码。
    • assets:存放静态资源,如 CSS、图片等。
    • components:存放 Vue 组件。
    • App.vue:根组件。
    • main.js:入口文件,用于创建 Vue 实例。
  • public:存放静态文件,如 index.html
  • node_modules:存放项目依赖。
  • package.json:定义项目的依赖和脚本。
  • vue.config.js:Vue CLI 项目配置文件。

Vue Router

Vue Router 概览

Vue Router 是 Vue.js 的官方路由管理器,专为构建单页应用(SPA)设计。它允许你通过 URL 来映射和渲染不同的组件,实现页面的导航和路由控制。

  1. 路由基础

  2. 前端路由

    • 前端路由是一种在不重新加载整个页面的情况下,通过改变 URL 来更新页面内容的技术。
    • 它对于构建用户友好、交互性强的单页应用至关重要。
  3. 单页应用中的路由

    • 单页应用加载一次后,所有的页面导航都在前端完成,无需服务器参与。
    • 路由管理器根据当前 URL 动态渲染对应的组件。
安装与配置
  1. 安装 Vue Router

    • 使用 npm 或 yarn 安装 Vue Router:
      npm install vue-router # 或 yarn add vue-router
  2. 配置 Vue Router

    • 在项目中创建一个路由器实例,并定义路由规则(一般在src文件下创建一个router文件夹,里面创建一个.js文件):
       
    • 在 Vue 实例中使用路由器:
      new Vue({ router, render: h => h(App) }).$mount('#app');

路由链接 (<router-link>)

<router-link> 是 Vue Router 提供的一个组件,用于创建页面导航的链接。使用 <router-link> 可以很方便地定义导航链接,并且它会自动更新链接的激活状态(active class)。

基本用法

在这个例子中,我们定义了两个导航链接,分别指向应用的根路径 //about 路径。当用户点击这些链接时,Vue Router 会根据定义的路由规则渲染对应的组件。

激活状态

<router-link> 组件提供了 exactactive-class 属性来自定义激活状态的样式:

  • exact:当设置为 true 时,只有在路由完全匹配时才会应用激活状态。
  • active-class:自定义激活状态时使用的类名,默认为 router-link-active
路由对象

<router-link> 可以使用路由对象作为 to 属性的值,这在定义带有查询参数或命名视图时非常有用:

替代 <a> 标签

<router-link> 可以作为 <a> 标签的替代品,因为它在 HTML 中的表现与 <a> 标签相似,但它使用 Vue Router 的编程式导航而不是实际的页面跳转。

路由视图 (<router-view>)

<router-view> 是 Vue Router 的另一个核心组件,用于渲染当前路由匹配的组件。无论何时路由发生变化,<router-view> 都会重新渲染以显示相应的组件。

基本用法

在这个例子中,<router-view> 充当了一个占位符,Vue Router 会在这个位置渲染与当前 URL 匹配的组件。

嵌套路由视图

Vue Router 支持嵌套路由,这意味着你可以在组件内部定义子路由,并使用多个 <router-view> 来渲染它们:

在这个例子中,如果用户导航到 /user/profileParentComponent.vue 会渲染一个链接到 Profile,然后 ChildComponent.vue<router-view> 会渲染实际的 Profile 组件。

命名视图

<router-view> 也支持命名视图,允许你在同一位置渲染多个组件:

通过这种方式,你可以在不同的命名插槽中渲染不同的组件。

vuex

Vuex 是什么?

Vuex 是 Vue.js 的官方状态管理库。它专为 Vue.js 应用程序设计,特别是对于复杂的单页应用(SPA),提供了一个集中存储和管理所有组件状态的地方。Vuex 使用单一状态树模式,这意味着整个应用的状态都被存储在一个对象中,状态的改变通过可追踪的 mutations 来完成。

为什么要用 Vuex?

  1. 集中管理状态:在大型应用中,状态可能分散在多个组件中,集中管理可以简化状态逻辑。
  2. 状态变更可预测:所有状态变更都是通过 mutations 进行的,这些 mutations 都是同步操作,易于跟踪和理解。
  3. 多组件共享状态:Vuex 允许多个组件访问和修改同一个状态,而不需要通过复杂的 prop 传递或事件派发。
  4. 开发工具支持:Vuex 与 Vue DevTools 紧密集成,提供了强大的调试和时间旅行功能。

怎么用 Vuex?

  1. 初始化 Store:创建一个新的 Vuex store 实例,定义 state、getters、mutations 和 actions。
  2. 定义 State:在 store 中声明应用的状态。
  3. 创建 Mutations:定义修改 state 的方法。
  4. 编写 Actions:处理异步操作,并可以触发 mutations。
  5. 使用 Getters:声明从 state 派生的状态。
  6. 模块化:将 store 分割成模块,每个模块拥有自己的状态和逻辑。
  7. 在组件中使用:通过 this.$store 访问 store,并使用 mapState、mapGetters、mapActions 等辅助函数简化组件中的 state 访问。

能用 Vuex 干什么?

  • 管理复杂的状态逻辑:在大型应用中,状态可能非常复杂,Vuex 提供了清晰的结构来管理这些状态。
  • 组件间通信:Vuex 允许组件之间通过一个共享的状态对象进行通信,无需 prop drilling 或 event bus。
  • 持久化状态:可以结合本地存储等技术,实现应用状态的持久化。
  • 中间件和插件:Vuex 支持中间件和插件,可以扩展其功能,如记录状态变更、自动化的 actions 队列等。

相对于别的?

虽然 Vuex 是 Vue.js 的官方状态管理库,但并不是说它适用于所有场景或没有替代品。以下是一些选择 Vuex 或其他状态管理库的考虑因素:

  • 项目规模:对于小型或中型项目,可能不需要 Vuex 的复杂性,可以使用简单的 prop 传递或事件总线模式。
  • 团队熟悉度:如果团队对 Redux 等其他状态管理库更熟悉,可能会选择使用它们。
  • 生态系统:Vuex 与 Vue.js 生态系统紧密集成,提供了最佳的开发体验。
  • 替代品:其他状态管理库如 Redux(在 React 中更常见)、MobX 或全局状态管理插件(如 Vue 的 provide/inject)也可以实现类似功能,但可能需要更多的配置或与 Vue 的集成不如 Vuex 紧密。

相关文章:

Vue CLI,Vue Router,Vuex

前言 Vue CLI、Vue Router 和 Vuex 都是 Vue.js 生态系统中的重要组成部分&#xff0c;它们在构建 Vue 应用程序时扮演着关键角色。 Vue CLI Vue CLI 介绍 Vue CLI 是 Vue.js 的官方命令行工具&#xff0c;用于快速搭建 Vue.js 项目。它提供了一个图形界面&#xff08;通过…...

互联网广告相关概念

互联网广告概念涉及多个关键指标和定价模式&#xff0c;它们帮助广告主和广告平台衡量广告效果、优化广告投放策略&#xff0c;并计算广告成本。以下是互联网广告中一些核心概念的简要概述&#xff1a; 1.ROI (投资回报率) 衡量广告投资的效益&#xff0c;计算公式为&#xff…...

如何在服务器上部署一个java程序

如何在服务器上部署一个java程序&#xff1f; 一、在服务器上安装jdk环境 1.创建目录用于存放jdk文件 cd /usr/local 2.下载最新版oracle jdk22 wget https://download.oracle.com/java/22/latest/jdk-22_linux-x64_bin.tar.gz 3.解压 tar -zxf jdk-22_linux-x64_bin.ta…...

白酒:中国的酒文化的传承与发扬

中国&#xff0c;一个拥有五千年文明史的国度&#xff0c;其深厚的文化底蕴孕育出了丰富多彩的酒文化。在这片广袤的土地上&#xff0c;酒不仅仅是一种产品&#xff0c;更是一种情感的寄托&#xff0c;一种文化的传承。云仓酒庄的豪迈白酒&#xff0c;正是这一文化脉络中的一颗…...

算法金 | 再见!!!梯度下降(多图)

大侠幸会&#xff0c;在下全网同名「算法金」 0 基础转 AI 上岸&#xff0c;多个算法赛 Top 「日更万日&#xff0c;让更多人享受智能乐趣」 接前天 李沐&#xff1a;用随机梯度下降来优化人生&#xff01; 今天把达叔 6 脉神剑给佩奇了&#xff0c;上 吴恩达&#xff1a;机器…...

python Django安装及怎么检测是否安装成功

一、winr 输入cmd 进入控制台。输入pip install Django5.0.1 二、如果安装过程没有问题。就进行下一步进行检查是否成功安装。 三、 1.在控制台输入python&#xff0c;进入python环境 2.输入 import django 3.继续输入 django.get_version()。显示版本号表示成功安装。...

Swift开发——存储属性与计算属性

Swift语言开发者建议程序设计者多用结构体开发应用程序。在Swift语言中,结构体具有了很多类的特性(除类的与继承相关的特性外),具有属性和方法,且为值类型。所谓的属性是指结构体中的变量或常量,所谓的方法是指结构体中的函数。在结构体中使用属性和方法是因为:①匹别于结…...

如何解决input输入时存在浏览器缓存问题?

浏览器有时会在你输入表单过后缓存你的输入&#xff0c;有时候能提供方便。 但是在某些新建或新页面情况下出现历史的输入信息&#xff0c;用户体验很差。 解决方案 设置 autocomplete关闭 &#xff1a;<input type"text" autocomplete"off">增加…...

Java基础学习-方法

目录 方法基础概念 方法的格式&#xff1a; 案例&#xff1a;最简单方法的定义 案例&#xff1a;带参数的方法调用 案例&#xff1a;求圆的面积 带有返回值的方法&#xff1a; 方法注意点 方法的重载&#xff1a; ​编辑 案例&#xff1a;数组的遍历&#xff1a; 案例…...

Ribbon与Nginx的区别

负载均衡实现的位置不同&#xff1a; Ribbon&#xff1a;负载均衡器位于客户端&#xff0c;不需要单独搭建。Nginx&#xff1a;需要建立一个独立负载均衡服务器&#xff0c;服务端。 负载均衡策略&#xff1a; Ribbon&#xff1a;提供了多种负载均衡策略&#xff0c;如随机策…...

R包开发详细教程

开发一个R包可以帮助你组织和共享代码。以下是一个详细的步骤教程&#xff0c;介绍如何开发一个R包。 步骤 1: 准备工作 确保你已经安装了以下R包&#xff1a; install.packages("devtools") install.packages("roxygen2") install.packages("test…...

图像的高频和低频细节

在图像处理和计算机视觉中&#xff0c;"高频"和"低频"是用来描述图像中不同类型细节的术语。这些术语源自信号处理领域&#xff0c;其中频率的概念用于描述信号随时间变化的&#xff0c;但在图像处理中&#xff0c;它们被用来描述图像随空间变化的&#xf…...

PostgreSQL源码分析——常量表达式化简

常量表达式化简 常量表达式可以进行化简&#xff0c;可降低执行器计算表达式的代价。在逻辑优化阶段&#xff0c;会判断是否可以进行常量表达式化简&#xff0c;如果可以&#xff0c;则在执行器执行之前就预先对常量表达式树进行计算&#xff0c;计算出常量后&#xff0c;以新…...

速卖通自养号测评:安全高效的推广手段

在速卖通平台上&#xff0c;卖家们常常寻求各种方法来提升商品的曝光、转化率和店铺权重。其中&#xff0c;自养号测评作为一种低成本、高回报的推广方式&#xff0c;备受关注。然而&#xff0c;若操作不当&#xff0c;也可能带来风险。以下是如何安全有效地进行自养号测评的指…...

项目监督与控制

1.什么是项目过程度量&#xff1f;其方法有哪些&#xff1f; 项目过程度量是一种对项目执行过程中的活动和性能进行量化测量的方法。它涉及到收集、分析和解释项目数据&#xff0c;以便更好地理解项目的进度、质量和效率。过程度量的目的是提供关于项目健康状况的客观信息&…...

【LeetCode刷题】面试题 17.19. 消失的两个数字

1. 题目链接2. 题目描述3. 解题方法4. 代码 1. 题目链接 面试题 17.19. 消失的两个数字 2. 题目描述 3. 解题方法 例子假设&#xff1a; 数组A元素为 &#xff1a;1 &#xff0c;4&#xff0c;5 缺少的元素为&#xff1a;2&#xff0c; 3 那么所有整数就为1 ~ 5&#xff…...

如何定制Spring的错误json信息

一&#xff0c;前言 相信很多同学都有遇到过这样的spring错误信息。 在我们没有做catch处理时或者做全局的exceptionHandle时&#xff0c;Spring遇到抛出向外的异常时&#xff0c;就会给我们封装返回这么个格式的异常信息。 那么问题来了&#xff0c;我们能否对这个返回增加错…...

【第20章】Vue实战篇之Vue Router(路由)

文章目录 前言一、使用Vue-Router1.安装2. 创建路由器实例3. 注册路由器插件4. 根组件 二、访问路由器1.理论2.使用3. 展示 三、嵌套路由(子路由)1. 准备文件2. 配置路由3. 菜单配置4. 展示 总结 前言 Vue Router 是 Vue.js 的官方路由。它与 Vue.js 核心深度集成&#xff0c;…...

阿里云运维第一步(监控):开箱即用的监控

作者&#xff1a;仲阳 这是云的时代&#xff0c;现在云计算已经在各行各业广泛的应用。但是上云对于大多数客户来说&#xff0c;依然有很大的学习成本&#xff0c;如下图仅是阿里云都有几百款产品&#xff0c;怎么选择&#xff1f;怎么用&#xff1f;对于客户来说都是问题。“…...

Python量化交易学习——Part7:定制增强型中证红利策略

中证红利指数是一个反映A股市场高红利股票整体状况和走势的指数。它通过选取上海、深圳交易所中现金股息率高、分红比较稳定、具有一定规模及流动性的100只股票作为样本。这个指数的目的是提供一个全面且具有代表性的视角,以观察A股市场中高红利股票的表现。中证红利指数的样本…...

HTML 语义化

目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案&#xff1a; 语义化标签&#xff1a; <header>&#xff1a;页头<nav>&#xff1a;导航<main>&#xff1a;主要内容<article>&#x…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上&#xff0c;看到基于小智 AI DIY 玩具的演示&#xff0c;感觉有点意思&#xff0c;想着自己也来试试。 如果只是想烧录现成的固件&#xff0c;乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外&#xff0c;还提供了基于网页版的 ESP LA…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程&#xff1a;首先由HR先筛选一部分简历后&#xff0c;在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如&#xff1a;Boss直聘&#xff08;招聘方平台&#xff09; 直接按照条件进行筛选 例如&#xff1a…...

[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】&#xff0c;分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...

搭建DNS域名解析服务器(正向解析资源文件)

正向解析资源文件 1&#xff09;准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2&#xff09;服务端安装软件&#xff1a;bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...

脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)

一、OpenBCI_GUI 项目概述 &#xff08;一&#xff09;项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台&#xff0c;其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言&#xff0c;首次接触 OpenBCI 设备时&#xff0c;往…...

ABAP设计模式之---“Tell, Don’t Ask原则”

“Tell, Don’t Ask”是一种重要的面向对象编程设计原则&#xff0c;它强调的是对象之间如何有效地交流和协作。 1. 什么是 Tell, Don’t Ask 原则&#xff1f; 这个原则的核心思想是&#xff1a; “告诉一个对象该做什么&#xff0c;而不是询问一个对象的状态再对它作出决策。…...

vue3 手动封装城市三级联动

要做的功能 示意图是这样的&#xff0c;因为后端给的数据结构 不足以使用ant-design组件 的联动查询组件 所以只能自己分装 组件 当然 这个数据后端给的不一样的情况下 可能组件内对应的 逻辑方式就不一样 毕竟是 三个 数组 省份 城市 区域 我直接粘贴组件代码了 <temp…...

PostgreSQL 的扩展pg_prewarm

PostgreSQL 的扩展pg_prewarm pg_prewarm 是 PostgreSQL 提供的一个实用扩展&#xff0c;用于将数据预先加载到共享缓冲区或操作系统缓存中&#xff0c;从而提升查询性能。 一、扩展概述 核心功能 手动预热&#xff1a;将指定的表或索引数据加载到内存自动预热&#xff1a;…...

AI编程在BOSS项目的实践经验分享

前言 在人工智能技术革新浪潮的推动下&#xff0c;智能编程助手正以前所未有的速度重塑开发领域。这些基于AI的代码辅助工具通过智能提示生成、实时错误检测和自动化重构等功能&#xff0c;显著提升了软件工程的全流程效率。无论是初入行业的开发者还是资深程序员&#xff0c;…...