Vue插件

news/2024/4/26 7:09:58/文章来源:https://www.cnblogs.com/nirvana001/p/16849278.html

Vue插件

Vuex 的使用

vuex的作用

是vue的插件,增强了vue的功能

在Vue中实现集中式状态(数据)管理的一个Vue插件,对vue应用中多个组件的共享状态进行集中式的管理(读/写),也是一种组件间通信的方式,且适用于任意组件间通信

vuex使用流程

1.state------------用于存储数据

2.actions---------数据的中转站,起到传递的作用

3.mutations-----是真正改state数据的地方

  • 使用步骤

    1.在state中定义变量

    2.在组件中通过this.$store.dispatch('actions中定义的函数'),触发actions中得函数执行

    3.在actions中得函数中,调用 context.commit('mutations中定义的函数')

    4.在mutations中定义的函数实现真正的修改state中得数据

    5.页面中只要使用$store.state.变量,变量变化,页面就变化 实现了组件间通信

    6.注意:

    ​ ①在组件中可以直接调用commit触发【mutations中定义的函数】

    ​ ②在组件中可以直接修改state中定义变量

vuex的执行流程图

image

搭建vuex环境

  • 创建文件:src/store/index.js

      //引入Vue核心库import Vue from 'vue'//引入Vueximport Vuex from 'vuex'//应用Vuex插件Vue.use(Vuex)//准备actions对象——响应组件中用户的动作const actions = {}//准备mutations对象——修改state中的数据const mutations = {}//准备state对象——保存具体的数据const state = {}//创建并暴露storeexport default new Vuex.Store({actions,mutations,state})
  • main.js中创建vm时传入store配置项

       ......//引入storeimport store from './store'......//创建vmnew Vue({el:'#app',render: h => h(App),store})
    

基本使用

  • 初始化数据、配置actions、配置mutations,操作文件store.js

    //引入Vue核心库
    import Vue from 'vue'
    //引入Vuex
    import Vuex from 'vuex'
    //引用Vuex
    Vue.use(Vuex)const actions = {//响应组件中加的动作jia(context,value){// console.log('actions中的jia被调用了',miniStore,value)context.commit('JIA',value)},
    }const mutations = {//执行加JIA(state,value){// console.log('mutations中的JIA被调用了',state,value)state.sum += value}
    }//初始化数据
    const state = {sum:0
    }//创建并暴露store
    export default new Vuex.Store({actions,mutations,state,
    })
    
  • 组件中读取vuex中的数据:$store.state.sum

  • 组件中修改vuex中的数据:$store.dispatch('action中的方法名',数据)$store.commit('mutations中的方法名',数据)

    <template><div><hr>{{sum}}<button @click="handleClick">点我</button></div>
    </template><script>export default {name: "App",data() {return {v:'xxx',sum:this.$store.state.sum};},methods:{handleClick(){// action中的方法名// this.$store.dispatch('jia',2)// console.log(this.$store.state.sum)//mutations中的方法名this.$store.commit('JIA',4)console.log(this.$store.state.sum)}}
    };
    </script>
    

    若没有网络请求或其他业务逻辑,组件中也可以越过actions,即不写dispatch,直接编写commit

Vue-router的使用

  • 官方提供的用来实现SPA 的vue 插件:

    有了它以后,我们可以写很多页面组件,通过地址栏不同的路径显示不同的页面组件

  • 中文文档: http://router.vuejs.org/zh-cn/

  • 下载: npm install vue-router --save

router基本使用

  • 使用步骤

    1.新建router/index.js

    //引入VueRouter
    import VueRouter from 'vue-router'
    //引入Luyou 组件
    import About from '../components/About'
    import Home from '../components/Home'//创建router实例对象,去管理一组一组的路由规则
    // const routes = new VueRouter({ routes:[配置路由1,配置路由2]})
    const router = new VueRouter({routes:[{path:'/about',component:About},{path:'/home',component:Home}]
    })

    2.在main.js中 注册路由

    import router from './router'
    new Vue({...router,...
    }).$mount('#app')
    

    3.配置路由,页面组件

    routes: [{ // 一般路由path: '/about',     //路径name: 'about',		//别名component: About   // 页面组件},{ // 自动跳转路由path: '/',    redirect: '/about'}
    ]
    

    4.在App.vue中使用路由组件标签

    1.显示当前路由组件界面
    <router-view>   
    </router-view>2.生成路由链接
    <router-link to="/xxx">Go to XXX</router-link>
    

    5.在浏览器访问const routes中配置的路径,就能看到对应的页面组件了

路由的跳转

  • 正常的路由跳转

    1.在html中使用
    <router-link :to="path">去登录</router-link>
    2.在js中使用
    this.$router.push('goods')
    
  • 路由跳转携带参数

    1.参数携带在请求地址中

    <router-link to="/login/?name=lqz&age=19">去登录</router-link>
    组件中接受:this.$route.query.取
    

    2.参数在地址中类似于django的分组

    <router-link to="/login/lyf">去登录</router-link>
    组件中接受:this.$route.params.取
    

路由的嵌套

  • 步骤:

    1.router/index.js 相应的路由中

     {path: '/goods',name: 'goods',component: Goods,children: [{path: 'list',component: GoodList},{path: 'detail',component: GoodDetail}]},
    

    2.必须要在Goods组件中,写

    3.使用router-link标签跳转

    4.只会变更Goods下router-view包裹的位置

路由守卫

对路由进行权限控制

全局前置守卫

//全局前置路由守卫————初始化的时候被调用、每次路由切换之前被调用
router.beforeEach((to,from,next)=>{console.log('前置路由守卫',to,from)if(to.meta.isAuth){ //判断是否需要鉴权if(localStorage.getItem('name')==='lqz'){next()}else{alert('名不对,无权限查看!')}}else{next()}
})

全局后置守卫

初始化的时候被调用、每次路由切换之后被调用

router.afterEach((to,from)=>{console.log('后置路由守卫',to,from)document.title = to.meta.title || 'lqz系统'
})

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

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

相关文章

[2022 祥云杯] Reverse部分赛题复现

女娲补天:指星期天打了一天的V3,再不学re👶要被开了(确信 rocket 官方给了个Hint: rocket题目环境建议使用Ubuntu22.04,racket版本8.2 先配环境,直接按照hint去github上找.sh脚本安装的话运行程序会一直报permission denied的错而且解决不了(如果有大爹解决了请务必告…

MySQL查询数据(多表查询)

1.内连接 语法:select 字段列表 from 表1 [as 别名1],表2 [as 别名2]....where 表1.字段 = 表2.字段 AND 其它查询条件 (1)查询student表和courses表的内容。SELECT * from student,courses; 此处的结果是student表的8行记录*courses表的4行记录,总共有32行记录(笛卡尔积…

【mysql】云服务器被攻击,数据库以及数据都被删除如何通过binlog日志恢复

前言&#xff1a; 小编买了一台阿里云服务器&#xff0c;然后通过docker 部署了mysql&#xff0c; 然后用了一段时间突然发现数据都没有了&#xff0c;然后就排查问题&#xff0c;发现是被攻击了&#xff0c;如下图 you must pay 0.26BTC&#xff0c;怒了&#xff0c;好多钱呢…

开放式运动耳机排行榜哪个好用,排行靠前的五款运动耳机分享

犹豫特殊原因没有了马拉松比赛&#xff0c;对此之前一起训练的小伙伴们自身的积极性也是日渐低迷&#xff0c;相应的现在训练都是我自己一个人&#xff0c;犹豫是一个人的训练&#xff0c;不管是在训练中还是在训练后都会感觉到枯燥孤单&#xff0c;为了解决这个困扰&#xff0…

金融期货和期权等品种权限

一、我国原油期货正式上市交易&#xff0c;由于该品种的特殊性&#xff0c;以及允许境外投资参与交易。 上市之后就规定监管机构就规定了该品种权限的开通方法如下&#xff0c;同时满足如下四个条件即可&#xff1a; 1、三年内有境内交易记录&#xff08;即得先有商品期货账户…

国考省考申论:2次阅读法:1读感知材料类型和段落关系,2读根据问题词,原因词,影响词,对策词,关联词把握得分要点

国考省考申论&#xff1a;2次阅读法&#xff1a;1读感知材料类型和段落关系&#xff0c;2读根据问题词&#xff0c;原因词&#xff0c;影响词&#xff0c;对策词&#xff0c;关联词把握得分要点 2022找工作是学历、能力和运气的超强结合体! 公务员特招重点就是专业技能&#x…

学习笔记:Nim 游戏

学习笔记:Nim 游戏 0 一些定义与概念 公平组合游戏(Impartial combinatorial game, ICG) 公平组合游戏满足:由两名玩家交替移动; 在游戏进程的任意时刻,可以执行的合法行动与轮到哪名玩家无关; 不能行动的玩家判负。Nim 游戏属于公平组合游戏。但常见的棋类大部分都不是…

【2022-11-01】前端Vue框架(六)

一、Vuex的使用 Vuex基本使用 # 在Vue中实现集中式状态(数据)管理的一个Vue插件,对vue应用中多个组件的共享状态进行集中式的管理(读/写),也是一种组件间通信的方式,且适用于任意组件间通信。# 使用步骤:1 在state中定义变量2 在组件中通过this.$store.dispatch(action…

虚拟存储器-11.1

虚拟存储器-11.1 1.虚拟存储器概述 1.1局部性原理 1.程序的局部性原理&#xff1a;程序在运行的时候局限在某个局部的地方。 2.虚拟存储器的工作基本情况 运行时在内存运行时不在内存需要时调入内存不需要调出内存 2.虚拟存储器实现的方法 2.1请求分页技术 2.1.1思想 分…

python标记删除如何实现?

python标记删除如何实现&#xff1f; 说明 1、主要解决循环引用的数据。因为引用大于0&#xff0c;不会回收。 2、标记删除是为了解决这个循环引用不能删除的问题。 3、对于删除操作后的每一个引用-1&#xff0c;此时num,num1的引用为0&#xff0c;将其放入死亡容器中&#…

VSCode下载安装与使用教程

目录1. 打开官网进行下载安装2. 下载3. 安装4. 使用4.1 extensions4.2 Python编译器4. 运行python代码的 3 种方法参考资料VSCode是一款免费开源的现代化轻量级代码编辑器&#xff0c;下面就简单的带大家一起来下载和安装VSCode。 1. 打开官网进行下载安装 官方下载链接&…

设计模式系列之MVC模式

这里写自定义目录标题1、设计模式概要最基本的设计模式使用设计模式的好处2、MVC模式MVC实例&#xff1a;模型 models.py视图views.py控制器 Controller.py3、优缺点总结1、设计模式概要 定义&#xff1a; 设计模式是由众多的软件开发人员经过长期的积累&#xff0c;不断试错改…

uniapp老项目添加自动化部署并配置多环境

我司其他项目都是通过jenkins打包部署的&#xff0c;只有uniapp项目要前端通过hbuilderx手动打包上传到git&#xff0c;为了方便操作&#xff0c;改造老项目&#xff01; 创建一个新的uniapp项目 参考&#xff1a;https://uniapp.dcloud.net.cn/quickstart-cli.html 安装vue…

顺应国家趋势,争做爱国程序员

当今社会&#xff0c;为了不再使我国面临“缺芯”的情况下&#xff0c;先进计算技术逐渐成为我国的发展趋势。 那&#xff0c;何为先进计算&#xff1f; 百度百科的定义为&#xff1a;先进计算包括超级计算、大数据、人工智能、云计算等多种新兴IT信息技术&#xff0c;先进计…

仿iPhone开关按钮switch

前端开发checkbox 单选按钮做开关https://github.com/weatherstar/switchgithub下载 渲染事件方法 defaults { size : ‘default’ , checked : undefined , onText : ‘Y’ , offText : ‘N’ , onSwitchColor : ‘#64BD63’ , offSwitchColor : ‘#fff’ , onJackColor : ‘…

html实现飞机小游戏(源码)

文章目录1.思路讲解1.1 游戏设计1.2 主界面1.3 倒计时进入游戏1.4 游戏效果1.3 游戏结束2.实现源码2.1 游戏动态效果2.2 游戏主代码2.3 源码目录源码下载作者&#xff1a;xcLeigh 文章说明 html实现飞机大战源码&#xff0c;酷炫的界面效果&#xff0c;有四款飞机大战背景&…

2022高频经典前端面试题(es6+webpack+http网络+性能优化中篇,含答案)

ES6篇 1. ES6的新特性?&#xff08;必考&#xff09; 参考阮一峰的es6文档&#xff1a;https://es6.ruanyifeng.com/ let、const变量的解构赋值模板字符串&#xff08;可以直接进行变量拼接&#xff09;箭头函数… 展开运算符可以将数组或对象里面的值展开&#xff1b;还可以…

面试被问到如何排查JVM问题的,如何回答?

一、首先说可用工具 1、jmap可以查看当前Java进程的内存占用,把内存快照dump出来 用法:jmap [option] <pid> 常用命令jmap -heap pid 主要显示堆的内存使用情况,包括分代情况,每个代的总容量、已使用内存、可使用内存,如图: jmap -dump:live,format=b,file=xxx…

发第一篇SCI有哪些技巧?

正所谓万事开头难&#xff0c;每当第一次做某一件事情总是难以开展的。因为那时我们没有一定的方法和技巧去完成这些事。比如 SCI论文是无数科研人员认可的学术文献&#xff0c;但是想要在SCI期刊上发表论文是十分困难的&#xff0c;因为在论文创作上尚且不成熟&#xff0c;没有…

大学毕业1年,从监工转行软件测试,我拿到了人生第一份8k的offer

大家好&#xff0c;我是小静&#xff0c;是一名IT转行人&#xff0c;2015年毕业于某所XXXX大专&#xff0c;大学学的专业是土木工程&#xff0c;毕业也是不出意外的来到了工地&#xff0c;从事的是一份监工的工作&#xff0c;就是工地上带白帽子的&#xff0c;每个月拿着4000块…