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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

工程打包与运行

黑马程序员Spring Boot2 文章目录 先点击cean&#xff0c;确保打包之前是个干净的环境点击package进行打包&#xff0c;打包成功之后可以看到target文件夹下的文件 到项目目录下使用终端打开&#xff0c;并使用以下命令运行打包好的程序 如果遇到没有主清单属性的问题&#xff…

搜维尔科技邀您共赴2024第四届轨道车辆工业设计国际研讨会

会议内容 聚焦“创新、设计、突破”&#xff0c;围绕“面向生命健康、可持续发展的轨道交通系统” 为主题&#xff0c;从数字化、智能化、人性化、绿色发展等方面&#xff0c;探索轨道交通行业的设计新趋势及发展新机遇。 举办时间 2024年7月10日-12日 举办地点 星光岛-青岛融…

5.音视频基础 FLV

目录 简说FLV FLV Header FLV Body Tag Header ​编辑Tag Data Audio Data Video Data Script Data 简说FLV FLV格式可以包含音频、视频和文本数据&#xff0c;并且可以在网络上进行流媒体传输。优点是文件大小较小&#xff0c;压缩效率高&#xff0c;并且可以在较低…

WiFi/BLE芯片(1):英飞凌

前言: 大部分客户很少直接接触到WiFi/Bluetooth的芯片,一般是直接封装到了模块中,隔了一层。具体到芯片而言,WiFi/BLE芯片,芯片厂家有:Qualcomm高通、broadcom博通、Infineon英飞凌、Nordic诺迪科、Espressof乐鑫等。而英飞凌这块产品也是很丰富的,低功耗、距离等性能指…

飞创直线模组厂家,为高精度运动系统提供直驱技术解决方案

飞创Faster motion是国内一家专业的直线模组厂家&#xff0c;致力于研发、设计、生产超长行程、超高速度、超高精度、超重负载以及速度平稳的单轴和多轴直线电机模组&#xff0c;为高速、高精度运动平台提供直驱技术解决方案。 飞创直线模组其生产的单轴、双轴、龙门、多轴模组…

化工电力系统RFID无线测温技术的重要性。

在现代工业体系中&#xff0c;化工电力系统的安全与效率对于整个生产链的顺畅运行至关重要。在日常工作中,由于设备制造的原因,设备受环境污染的原因、设备长期运行、严重超载运行、触点氧化、电弧冲击等原因造接触电阻增大,因此在运行时往往不断发热,温度不断上升,给设备安全运…

Leetcode Hot100之双指针

1. 移动零 题目描述 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操作。解题思路 双指针遍历一遍即可解决: 我们定义了两个指针 i 和 j&#xf…

C++ Windows Hook使用

GitHub - microsoft/Detours: Detours is a software package for monitoring and instrumenting API calls on Windows. It is distributed in source code form. /*挂载钩子 setdll /d:C:\Users\g\source\repos\LotTest\Release\lotDll.dll C:\Users\g\source\repos\LotTest…

Java特性之设计模式【访问者模式】

一、访问者模式 概述 在访问者模式&#xff08;Visitor Pattern&#xff09;中&#xff0c;我们使用了一个访问者类&#xff0c;它改变了元素类的执行算法。通过这种方式&#xff0c;元素的执行算法可以随着访问者改变而改变。这种类型的设计模式属于行为型模式。根据模式&…

WPF三方UI库全局应用MessageBox样式(.NET6版本)

一、问题场景 使用HandyControl简写HC 作为基础UI组件库时&#xff0c;希望系统中所有的MessageBox 样式都使用HC的MessageBox&#xff0c;常规操作如下&#xff1a; 在对应的xxxx.cs 顶部使用using 指定特定类的命名空间。 using MessageBox HandyControl.Controls.Message…

js语法---理解反射Reflect对象和代理Proxy对象

Reflect 基本要点 反射&#xff1a;reflect是一个内置的全局对象&#xff0c;它的作用就是提供了一些对象实例的拦截方法&#xff0c;它的用法和Math对象相似&#xff0c;都只有静态方法和属性&#xff0c;同时reflect也没有构造器&#xff0c;无法通过new运算符构建实例对象&…

xcode和iPhone真机或者watch真机连接问题

1.如果真机是第一次连接xocde&#xff0c;就需要开启真机上的开发者模式&#xff0c;开启开发者模式的方式&#xff1a; iphone/ipad开启方式: 设置 > 隐私与安全 > 开发者模式 > 开启&#xff0c;然后重启就可以了 watch设置&#xff1a;很麻烦&#xff0c;看文章…

现代谱估计分析信号的功率谱(1)---AR 模型谱估计

本篇文章是博主在通信等领域学习时&#xff0c;用于个人学习、研究或者欣赏使用&#xff0c;并基于博主对通信等领域的一些理解而记录的学习摘录和笔记&#xff0c;若有不当和侵权之处&#xff0c;指出后将会立即改正&#xff0c;还望谅解。文章分类在通信领域笔记&#xff1a;…

进阶篇06——锁

概述 全局锁 表级锁 表锁 元数据锁 元数据锁是系统自动加的&#xff0c;不需要我们手动执行命令添加。 意向锁 意向锁和元数据锁一样&#xff0c;也是在加行锁的时候自动给表加上相应的意向锁&#xff0c;不需要我们手动添加。 行级锁 行锁 读锁和读锁兼容&#xff0c;写锁…

易舟云财务软件:开启云记账新时代

在数字化浪潮的推动下&#xff0c;财务管理正经历着深刻的变革。易舟云财务软件&#xff0c;作为一款引领时代的云记账平台&#xff0c;以其卓越的功能和便捷的操作&#xff0c;为企业带来了全新的财务管理体验。 云记账&#xff0c;财务管理的未来趋势 云记账&#xff0c;即基…

免费试用【汇通动态域名】体验test.htdns.cn

汇通动态域名下载地址&#xff1a; http://www.htsoft.com.cn/htsoft/htdnssoft.html 下载后汇通动态域名是绿色软件&#xff0c;不用安装&#xff0c;直接运行htdns.exe 点注册 二级域名地方改成您自己要的域名&#xff0c;我输入的是test,点保存&#xff0c;提示让您输入密…

2024年618成交额达7428亿 淘宝京东618交易额数据对比排名

2024年618年中大促已经基本落下帷幕&#xff0c;作为上半年最重要的电商节日&#xff0c;今年的618交易额有多少&#xff1f;今年的交易数据有哪些变化&#xff1f;我们来一起看一下&#xff01; 根据星图监测数据显示&#xff0c;2024年618期间&#xff08;天猫5月20日20: 00-…

海外盲盒APP开发,盲盒出海热!

当下&#xff0c;盲盒作为一种热门的娱乐休闲模式&#xff0c;在全球消费市场中都非常火热&#xff0c;各种热门盲盒商品刚一上线就受到了秒杀&#xff0c;受到了各地年轻消费者的追捧&#xff01; 盲盒全球化对于我国盲盒企业来说是一个新的机会&#xff0c;有助于我国盲盒快…

华为云下Ubuntu20.04中Docker的部署

我想用Docker拉取splash&#xff0c;Docker目前已经无法使用&#xff08;镜像都在国外&#xff09;。这导致了 docker pull 命令的失败&#xff0c;原因是timeout。所以我们有必要将docker的源设置在国内&#xff0c;直接用国内的镜像。 1.在华为云下的Ubuntu20.04因为源的原因…

Python 基础:文件

目录 一、从文件中读取数据1.1 读取整个文件1.2 逐行读取 二、写入文件2.1 写入空文件2.2 写入多行2.3 附加到文件 遇到看不明白的地方&#xff0c;欢迎在评论中留言呐&#xff0c;一起讨论&#xff0c;一起进步&#xff01; 本文参考&#xff1a;《Python编程&#xff1a;从入…