首页 > 其他分享 >Vue进阶用法3

Vue进阶用法3

时间:2023-08-01 22:11:22浏览次数:177  
标签:Vue 进阶 用法 state 组件 router 路由 name

Vue进阶用法3

Vuex 的使用

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

# Vuex的使用流程
	-state:存数据的地址
    -actions:服务员,中转站
    -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中定义变量

Vue-router的使用

# 官方提供的用来实现SPA 的vue 插件:有了它以后,我们可以写很多页面组件,通过地址栏不同的路径显示不同的页面组件
# https://router.vuejs.org/zh/index.html

基本使用

# 使用步骤
	1 新建router/index.js
    	const routes = [配置路由1,配置路由2]
    2 main.js中使用:之前已经写好了
    	import router from './router'
        new Vue({
            ...
              router,
            ...
            }).$mount('#app')
        
    3 只需要写页面组件,配置路由即可
    4 在App.vue中加入
      	<router-view>

        </router-view>
    5 在浏览器访问const routes中配置的路径,就能看到对应的页面组件了

路由的跳转

# 使用步骤:
	- 在html中使用
    	<router-link :to="path">去登录</router-link>
    -在js中使用
    	this.$router.push('goods')

路由跳转携带参数

# 两种情况
	-带在请求地址中以 ?name=lqz&age=19
    -在地址中类似于django的分组  /goods/1/
    
 
# 情况1:请求地址中
	-<router-link to="/login/?name=lqz&age=19">去登录</router-link>
    -组件中接受:this.$route.query.取
    
# 情况2:地址中
	<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组件中,写<router-view></router-view>
     3 使用router-link标签跳转
     4 只会变更Goods下router-view包裹的位置

路由守卫

# 对路由进行权限控制

# 前置路由守卫
router.beforeEach((to, from, next) => {
    console.log('前置路由守卫', to, from)

    if (to.name == 'shoppingcart') {
        let name = localStorage.getItem('name')
        if (name) {
            next()
        } else {
            alert('不好意思没有权限')
        }
    } else {
        next()
    }

})
# 后置路由守卫
router.afterEach((to,from)=>{
	console.log('后置路由守卫',to,from)
	document.title = to.name
})

标签:Vue,进阶,用法,state,组件,router,路由,name
From: https://www.cnblogs.com/joseph-bright/p/17599243.html

相关文章

  • Vue组件可以使用v-model实现双向数据绑定
    Vue组件可以使用v-model实现双向数据绑定。在组件中,可以在props中定义一个value属性,并在组件中的对应位置使用v-model进行绑定。例如:Copy<template><div><input:value="value"@input="$emit('input',$event.target.value)"></div></template......
  • 讲一讲我用vscode生成的Vue工程
    近照官网教程,先建立一个文件夹,然后用vscode打开,然后执行 npminitvue@latest命令出现页面我全部选择NO,那些组件用到之后再往进加,要么太乱了然后录入自己要创建的项目名称,我的名称起名myvue,注意项目名称不识别大写然后执行命令:cd myvue  再执行命令   npminstal......
  • vue3路由的两种引入方式useRouter和router进行页面跳转
    1.在vue3中有两种路由的引入方式第一种import{useRouter}from'vue-router'constuse_router=useRouter()use_router.push('/pathName')第二种importrouterfrom'@/router'router.push('/pathName') 2.两种方式的区别2.1.第一种方式的使用位置在vue......
  • JSON格式电商数据API接口,便捷式用法
    item_search-按关键字搜索商品请求参数注册Key和secret测试请求参数:q=女装&start_price=0&end_price=0&page=1&cat=0&discount_only=&sort=&page_size=40&seller_info=no&nick=&seller_info=&nick=&ppath=&imgid=&filter=参数说明:q:搜索关键字cat:......
  • PHPJSON解析 原理与用法
    PHPJSON解析原理与用法在现代编程语言中,JSON已经成为最流行的数据交换格式之一。而PHP作为一门流行的服务器端编程语言,自然也提供了一套完整的JSON解析库。本文将介绍PHPJSON解析的原理与用法,以帮助PHP开发者更好地使用JSON格式数据进行开发。什么是JSON?JSON代表“JavaScript......
  • v-model 用法详解
    基础用法v-model是vue的一个基础指令,用于表单的双向数据绑定<inputv-model="message"placeholder="editme"><p>Messageis:{{message}}</p>v-model原理一个组件上的v-model默认会利用名为value的prop和名为input的事件<inputv-model="searchText"......
  • vue3之父组件中封了子组件的抽屉(弹框类),通过update:modelValue来进行父子组件的v-mod
    eg:父组件a.vue<AddAiDrawer:projectId="route.query.id"v-model="addAiShow"title="新增"type="spaceAi"@call-back-table="refreshTa......
  • vuex和Pinia使用上的区别-Vue3推荐上Pinia
    Vuex和Pinia都是Vue.js状态管理库,可以管理组件之间的共享状态。它们的区别在于实现方式和API设计。Vuex是Vue.js的官方状态管理库,采用集中式的方式管理全局的状态。在Vuex中,应用程序的状态存储在一个单一的store中,组件只能通过dispatch、commit等方法来修改store中的状态。Vuex还提......
  • 深度长文整理-Redis进阶
    目录一、基础二、为什么Redis是单线程的?三、为什么单线程这么快?四、select、poll、epoll五、Redis的事务六、Redis的监控七、Redis的配置文件八、Redis的持久化8.1、fork()系统调用8.2、RDB8.3、AOF8.4、RDB和AOF的选择九、发布订阅十、主从复制十一、集群搭建及小实验11.1、架构一......
  • Python-10-Python常见高级用法
    10-1Lambda匿名函数匿名函数:没有定义函数的名称,可以实现函数某些简单的功能。格式:lambdaparam_list:expression#param_list参数列表#expression简单表达式,没法实现复杂的代码块内容需求1:传入xy,返回x+y例子:f=lambdax,y:x+yf(3,4)#7lambda与向量表达式......