首页 > 其他分享 >vue之elementui使用, vuex使用, Router使用, localstorage和sessionstorage,和cookie

vue之elementui使用, vuex使用, Router使用, localstorage和sessionstorage,和cookie

时间:2023-06-12 16:46:39浏览次数:49  
标签:vue 跳转 cookie 使用 组件 router 路由 页面

目录

一、elementui使用

网址https://element.eleme.cn/#/zh-CN/component/installation

下载插件

cnpm isntall -S [email protected]

vue界的ui库

Element Plus 经典中的经典,全面支持 Vue 3
Vant 3 - 有赞团队开源移动 UI 组件库,全面支持 Vue 3:https://vant-contrib.gitee.io/vant/#/zh-CN
TDesign - 鹅厂优质 UI 组件,配套工具完满,设计工整,文档清晰
Ant Design Vue - 阿里前端 UI 库,面向企业级中后台
iView:

二、vuex的使用

1.概念

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

2.何时使用?

多个组件需要共享数据时
image
image

3、使用步骤:

第一步:

state: {
    num:10
  },

第二步:

methods:{
    handleAdd(){
      // 1.直接操作
      // console.log('111')
      // this.$store.state.num+=1
      // 2.正统操作,通过dispatch触发actions
      this.$store.dispatch('add',2)   // add必须是actions里面的函数

    }
  }

第三步:

 actions: {
    // 至少要有一个参数,context上下文对象,触发mutations中的函数执行,或者直接改state中的数据都可以
    add(context,count){
      // 使用commit,触发mutations中的函数
      console.log(context)
      console.log(count)
      context.commit('mAdd',count)
    }
  },

第四步:

mutations: {
    mAdd(state,count){
      console.log(state)
      console.log(count)
      state.num = state.num+=count
    }
  },

三、Router使用

提倡单页面应用,需要做页面的跳转----》借助于Router实现页面组件的跳转

1 简单使用

-页面跳转(咱们之前学过了)
-写个页面组件
-在router--->index.js--->routes数组中加入一个路由即可

2 组件中实现页面跳转

-两种方式
	-方式一:使用 router-link 标签,to 地址
     	<router-link to="/about"></router-link>
	-方式二:js控制
    	this.$router.push('/about')

3 路由跳转时,可以使用对象

-1  通过对象跳转路由name形式: <router-link :to="{name:'about'}">
-2 通过对象跳转路由path形式: <router-link :to="{path:'/about'}">
-3 对象中可以有query属性,是个对象类型,会把里面的key-value拼到路径后面
-4 在另一个页面中取出地址栏中数据:console.log(this.$route.query)
-5 这种传递方式和 3  一样 <router-link to="/about?name=lqz&age=19">
-6 注意区分:
	this.$route:当前路由对象,当前路径,取传递数据。。。
    this.$router:整个路由对象,主要做跳转用
    
-7 路径中分割出 参数
	-配置:    
    	{
        path: '/detail/:pk',
        name: 'detail',
        component: DetailView
    	},
    -在路由中取:
    	this.$route.params.pk
        
-8 路由跳转时,使用 7 的样子
	-this.$router.push({name: 'detail', params: {pk: 999}})
    -<router-link :to="{name:'detail',params:{pk:88}}">

4 this.router 的一些方法

this.$router.push(path): 相当于点击路由链接(可以返回到当前路由界面)
this.$router.replace(path): 用新路由替换当前路由(不可以返回到当前路由界面)
this.$router.back(): 请求(返回)上一个记录路由
this.$router.go(-1): 请求(返回)上一个记录路由
this.$router.go(1): 请求下一个记录路由

四、多级路由

使用步骤:
- 1 新建一个页面组件(LqzView),配置路由

    	  {
            path: '/lqz',
            name: 'lqz',
            component: LqzView,
        },

2 在页面中,想再显示页面组件,实现点击切换的效果

    	   <h1>lqz页面</h1>
            <router-link to="lqz01">
              <button>lqz-01</button>
            </router-link>
            <router-link to="lqz02">
              <button>lqz-02</button>
            </router-link>

            <router-view>
            # 以后这里变换页面组件,多级路由
            </router-view>

-3 新建两个页面组件,Lqz01.vue,Lqz02.vue,配置路由children

      {
          path: '/lqz',
          name: 'lqz',
          component: LqzView,
          children: [ //通过children配置子级路由
              {
                  path: 'lqz01', //此处一定不要写:/news
                  component: Lqz01
              },
              {
                  path: 'lqz02',//此处一定不要写:/message
                  component: Lqz02
              }
          ]
      },

五、路由守卫和两种工作模式

路由守卫

前置路由守卫,再进入路由之前做判断
写在router-index.js中,以后访问任意一个路由,都会执行这个代码

router.beforeEach((to, from, next) => {
    console.log('前置路由守卫', to, from)
    // 要是访问lqz01,都不能跳转'
    // 如果没有登录,不能访问
    if (to.path == '/lqz/lqz01') {
        alert('你灭有权限')
    } else {
        next() # 继续访问
    }

路由器的两种工作模式

  • 1 对于一个url来说,什么是hash值?—— #及其后面的内容就是hash值。
  • 2 hash值不会包含在 HTTP 请求中,即:hash值不会带给服务器。
  • 3 hash模式:
    地址中永远带着#号,不美观 。
    若以后将地址通过第三方手机app分享,若app校验严格,则地址会被标记为不合法。
    兼容性较好。
  • 4 history模式:
    地址干净,美观 。
    兼容性和hash模式相比略差。
    应用部署上线时需要后端人员支持,解决刷新页面服务端404的问题

六、localstorage和sessionstorage,和cookie

前端存储数据
- 登录成功,有token,存本地
- 不登陆加购物车

前端可以存数据的位置:

localstorage:永久存储,除非你删除,关闭浏览器,再打开还会在
sessionstorage:只在当前会话生效,关闭浏览器,就没了
cookie:有过期时间,到了过期时间,自动删除

都是在浏览器存储数据的--》存数据有什么用?

-登录成功 token存在本地
-不登录加入购物车功能,迪卡侬存在了localStorage中
-组件间通信----》 跨组件

localStorage

-永久存储,除非清空缓存,手动删除,代码删除
-localStorage.setItem('userinfo', JSON.stringify(this.userInfo))
-localStorage.getItem('userinfo')
-localStorage.clear()  // 清空全部
-localStorage.removeItem('userinfo') 

sessionStorage

-关闭浏览器,自动清理
-sessionStorage.setItem('userinfo', JSON.stringify(this.userInfo))
-sessionStorage.getItem('userinfo')
-sessionStorage.clear()  // 清空全部
-sessionStorage.removeItem('userinfo') 
-有过期时间,到过期时间自动清理
-借助于第三方 vue-cookies
-cookies.set('userinfo', JSON.stringify(this.userInfo))
-cookies.get('userinfo')
-cookies.delete('userinfo')

标签:vue,跳转,cookie,使用,组件,router,路由,页面
From: https://www.cnblogs.com/yuezongke/p/17475430.html

相关文章

  • 前端vue可以左右滚动的切换的tabs tabs选项卡 滑动动画效果 自动宽度
    前端vue可以左右滚动的切换的tabstabs选项卡滑动动画效果自动宽度, 下载完整代码请访问https://ext.dcloud.net.cn/plugin?id=13003效果图如下:     ####使用方法```使用方法swiperTabList:["2023-06-10","2023-06-11","2023-06-12","2023-06-13","20......
  • 关于VS2022使用EF生成实体模型报错的问题:运行转换:System.NullReferenceException:对象
    起因:之前版本vs2022生成EF模型一直没有问题,在更新了最新的vs2022之后,版本号17.6+,出现此问题:运行转换:System.NullReferenceException:对象引用未设置为对象的示例。在Microsoft.VisualStudio.TextTemplatingD21DB4521EFD493FAE41A9CE9DA80C875F3084552987498BD518713BDE91D14A......
  • vue实现简单的鼠标拖拽横向滚动 和 鼠标滚轮横向滚动
    一.鼠标拖拽滚动以下代码项目中直接使用即可,此种方法是通过鼠标拖拽进行滚动,滑动滚轮无效果。当然快捷键,shift+鼠标滚轮可以控制横向滚动,对用户来说体验不友好。<divclass="tab-listid="nav"><divclass="tab-item"v-for="(item,index)inlist":key=""></div></d......
  • springboot使用swagger2以及遇到的一些问题
    1.导入依赖<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version></dependency><dependency><groupId>io.springfox</groupId>......
  • WRITE-BUG使用指南
    WRITE-BUG是做什么的?WRITE-BUG是北京聚流沙科技有限公司研发的独立开源社区。WRITE-BUG是国内首个面向学生群体的开源社区。奇文共欣赏,疑义相与析。自创建以来,我们旨在为广大学子生创立一个真正自由、开放、免费的学习社区,解决学生的难题,提供给开发者舞台。国内程序er苦付费内容久......
  • 如何使用Hilla管理全栈Java开发
    关键要点Hilla是一个开源框架,有望显着提高Web应用程序的开发效率。它将SpringBootJava后端与响应式TypeScript前端集成在一起。 用户界面是使用Lit或React以及Vaadin的40多个开源UIWeb组件创建的。  Hilla通过类型安全的服务器通信和集成工具帮助更快地构......
  • 【WebLogic使用】1.WebLogic的下载与安装
    一、WebLogic的介绍   WebLogic是美国bea公司出品的一个applicationserver,确切的说是一个基于Javaee架构的中间件,纯java开发的,最新版本WebLogicServer12cR2(12.2.1.3)(截至发文前)是迄今为止发布的最卓越的BEA应用服务器。BEAWebLogic是用于开发、集成、部署和管理大型分......
  • cookie 和session的区别
    1、对象不同cookie:是针对每个网站的信息,每个网站只能对应一个,其他网站无法访问,这个文件保存在客户端,每次您拨打相应网站,浏览器都会查找该网站的cookies,如果有,则会将该文件发送出去。cookies文件的内容大致上包括了诸如用户名、密码、设置等信息。session:是针对每个用户的,只有客......
  • scrcpy——Android投屏神器(使用教程)
    scrcpy简介简单地来说,scrcpy就是通过adb调试的方式来将手机屏幕投到电脑上,并可以通过电脑控制您的Android设备。它可以通过USB连接,也可以通过Wifi连接(类似于隔空投屏),而且不需要任何root权限,不需要在手机里安装任何程序。scrcpy同时适用于GNU/Linux,Windows和macOS。它的一些特......
  • 【Kubernetes学习笔记】-使用Minikube快速部署K8S单机学习环境
    介绍minikube.sigs.k8s.io/docs/Minikube用于快速在本地搭建Kubernetes单节点集群环境,它对硬件资源没有太高的要求,方便开发人员学习试用,或者进行日常的开发。其支持大部分kubernetes的功能,列表如下DNSNodePortsConfigMapsandSecretsDashboardsContainerRuntime:Docker,and......