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 紧密。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/724310.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C语言练习01-循环

一、打印五行五列的三角形 如下图&#xff1a; #include<stdio.h>int main() {for (int i 1;i < 5; i){for (int j i; j < 5; j){printf("*");}printf("\n");}return 0; }#include<stdio.h>int main() {for (int i 1;i < 5; i){f…

MATLAB直方图有关函数的关系

histogram Histogram plot画直方图 histcounts 直方图 bin 计数 histcounts是histogram的主要计算函数。 discretize 将数据划分为 bin 或类别 histogram2 画二元直方图 histcounts2 二元直方图 bin 计数 hist和histc过时了。替换不建议使用的 hist 和 histc 实例 hist → \r…

18个机器学习核心算法模型总结

最强总结&#xff01;18个机器学习核心算法模型&#xff01;&#xff01; 大家好~ 在学习机器学习之后&#xff0c;你认为最重要的算法模型有哪些&#xff1f; 今儿的内容涉及到~ 线性回归逻辑回归决策树支持向量机朴素贝叶斯K近邻算法聚类算法神经网络集成方法降维算法主成…

【因果推断python】44_评估因果模型2

目录 累积弹性曲线 累积增益曲线 考虑差异 关键思想 累积弹性曲线 再次考虑将价格转换为二元处理的说明性示例。我们会从我们离开的地方拿走它&#xff0c;所以我们有弹性处理带。我们接下来可以做的是根据乐队的敏感程度对乐队进行排序。也就是说&#xff0c;我们把最敏感…

day13 二叉树的遍历

一、二叉树的递归遍历 题目链接&#xff1a; 144.二叉树的前序遍历(opens new window)145.二叉树的后序遍历(opens new window)94.二叉树的中序遍历 文章讲解&#xff1a;https://programmercarl.com/%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E9%80%92%E5%BD%92%E9%81%8D%E5%8E…

苍穹外卖---编辑员工(P27-P29)

一、需求分析与设计 &#xff08;1&#xff09;产品原型 在员工管理列表页面点击 "编辑" 按钮&#xff0c;跳转到编辑页面&#xff0c;在编辑页面回显员工信息并进行修改&#xff0c;最后点击 "保存" 按钮完成编辑操作。 员工列表原型&#xff1a; 修改…

03 - matlab m_map地学绘图工具基础函数 - 设置坐标系(m_coord)

03 - matlab m_map地学绘图工具基础函数 - 设置坐标系&#xff08;m_coord&#xff09; 0. 引言1. m_proj使用方法2. 结语 0. 引言 上一篇介绍了m_proj函数用于初始化投影&#xff0c;本篇介绍的函数m_coord用于初始化地理坐标系或地磁坐标系&#xff0c;地理/地磁坐标系和投影…

数学建模----单源最短路径模型建立和求解

目录 1.引言和声明 2.单源最短路径 3.建立模型 4.代码求解 1.引言和声明 &#xff08;1&#xff09;最近又在准备学习matlab,有了一些新的理解和体会&#xff0c;记录一下&#xff1b; &#xff08;2&#xff09;这个首先要声明两个符号&#xff0c;这两个符号也是今天才知…

机械臂 CoppeliaSim Simulink联合仿真

实现机械臂在CoppeliaSim&#xff08;以前称为V-REP&#xff09;和Simulink上的联合仿真涉及多个步骤&#xff0c;包括环境设置、模型导入、通信配置、控制算法设计和测试调试。 前期准备 安装软件配置工作环境创建和配置CoppeliaSim场景 导入机械臂模型配置机械臂参数在Simuli…

2024年化学、能源与核工程国际会议(ICCENE 2024)

2024年化学、能源与核工程国际会议(ICCENE 2024) 2024 International Conference on Chemical, Energy and Nuclear Engineering (ICCENE 2024) 会议地点&#xff1a;三亚&#xff0c;中国 网址&#xff1a;www.iccene.com 邮箱: iccenesub-conf.com 投稿主题请注明:ICCEN…

Leetcode刷题笔记11

415. 字符串相加 415. 字符串相加 - 力扣&#xff08;LeetCode&#xff09; 解法一&#xff1a;头插 头插是指将一个新元素插入到链表的头部&#xff08;即第一个位置&#xff09;。 比如对于456和77&#xff0c;先计算两个数字的末项67的结果&#xff0c;然后往前挪动一位 …

基于PLC的全自动洗衣机控制系统课设

一、设计题目 1.1课题内容 根据设计参数和控制要求&#xff0c;设计一全自动洗衣机&#xff0c;画出其运行框图及梯形图控制程序的编制&#xff0c;并画出硬件接线图。 1.2设计参数 1.3控制要求 &#xff08;1&#xff09;按下启动按扭及水位选择开关&#xff0c;开始进水直…

18张Python数据科学速查表.png

数据科学已经发展成为一个庞大的系统&#xff0c;包含数学、统计学、概率论、计算机、数据库、编程等各种理论技术。 目前在主流的数据科学领域一般有三大生态&#xff0c;一是以sas、matlab、spss等为代表的商业软件生态&#xff0c;二是围绕R语言建立起来的开源生态&#xf…

CPN IDE实现分层效果

Shift键鼠标选中要分层的库所和变迁&#xff01;然后create subpage。 Subpage是这样的&#xff0c;不会像CPN tools里面自动生成IN和OUT库所&#xff0c;但是也能正确运行。 虽然父页面在运行中有标红&#xff1a;"port not defined" 错误通常意味着在模型中有一些连…

电脑提示d3dcompiler_47.dll丢失的解决方法,实测靠谱的5种方法

在计算机使用过程中&#xff0c;缺失d3dcompiler_47.dll这一系统文件是一个常见问题&#xff0c;尤其是对于游戏和图形密集型应用程序用户来说尤为重要。这个文件是DirectX软件工具包的一部分&#xff0c;主要用于处理图形渲染的应用程序接口的核心元素。当你在运行游戏或某些软…

连获殊荣,天润融通以AI技术重塑企业客户联络体验!

天润融通又获奖了。 2024年3月22日&#xff0c;「ToB行业头条」联合3W集团共同举办的「2024ToB头条行业大会」在北京举行。 为表彰在过去一年中表现卓越、对行业发展作出显著贡献的企业、产品和数字化转型案例&#xff0c;大会颁布了ToB年度榜单【2023中国ToB行业影响力价值榜…

【尝鲜】SpringCloudAlibaba AI 配置使用教程

1、环境配置 maven依赖pom.xml 注意配置远程仓库&#xff0c;原因见&#xff1a;Unresolved dependency: ‘org.springframework.ai:spring-ai-core:jar:0.8.1’ <dependencies><!--Base--><dependency><groupId>org.springframework.boot</group…

进化版ChatGPT的Siri今年无缘上线!苹果正打造史上最薄iPhone 17

目录 01 超强Siri助手预计2025年上线 02 集成ChatGPT但没有买单 03 iPhone 17更轻薄 最新报道称&#xff0c;苹果的AI功能将在未来几个月逐步推出&#xff0c;并持续到2025年。 据称&#xff0c;今年夏天结束前&#xff0c;开发者们仍无法试用和体验。 因此&#xff0c;在即…

【JavaEE】Spring Web MVC详解

一.基本概念. 什么是Spring Web MVC? 官方链接: https://docs.spring.io/spring-framework/reference/web/webmvc.html Spring Web MVC is the original web framework built on the Servlet API and has been included in the Spring Framework from the very beginning. Th…

Ubuntu22.04系统安装及配置

文章目录 一、选择“安装” 二、选择“语言” 三、安装器更新 四、键盘布局 五、选择安装类型 六、网络配置 七、代理设置 八、镜像地址 九、磁盘划分 十、设置用户名、主机名、登录密码 十一、升级到Ubuntu Pro 十二、SSH设置 十三、选装软件包 十四、开始安装进…