当前位置: 首页 > news >正文

vue part 11

vuex的模块化与namespace

115_尚硅谷Vue技术_vuex模块化+namespace_1_哔哩哔哩_bilibili

116_尚硅谷Vue技术_vuex模块化+namespace_2_哔哩哔哩_bilibili

vue-router路由

很常见的很重要的应用:Ajax请求,将响应的数据替换掉原先的代码从而实现不跳转页面的情况下实现局部刷新

1.什么是路由?

1.一个路由就是一组映射关系(key—value)
2. key 为路径,value 可能是function 或 component

2.路由分类
1.后端路由:
1)理解:value 是function,用于处理客户端提交的请求。
2)工作过程:服务器接收到一个请求时,根据请求路径找到匹配的函数来处
理请求,返回响应数据。                                                                                                                  2.前端路由:
1)理解:value 是component,用于展示页面内容。
2)工作过程:当浏览器的路径改变时,对应的组件就会显示。

基本路由

npm i vue-rounter@3

 和原来那样相同,都是vue3更新版本会报错

 index.js

//该文件专门用于创建整个应用的路由器import VueRouter from "vue-router";
import About from "@/components/About";
import Home from '@/components/Home';//创建并默认暴露一个路由器
export default new VueRouter({routes:[{path:'/about',component: About},{path:'/home',component: Home}]
});

App.vue

router-link的特殊标签,实现路由 切换

<template><div><div class="row"><div class="col-xs-offset-2 col-xs-8"><div class="page-header"><h2>Vue Router Demo</h2></div></div></div><div class="row"><div class="col-xs-2 col-xs-offset-2"><div class="list-group"><!--原始使用a标签跳转多个页面,多页面应用-->
<!--          <a class="list-group-item active" href="./about.html">About</a>-->
<!--          <a class="list-group-item" href="./home.html">Home</a>--><!--vue中借助router=link标签实现路由的切换--><router-link class="list-group-item" active-class="active" to="/about">About</router-link><router-link class="list-group-item" active-class="active" to="/home">Home</router-link></div></div><div class="col-xs-6"><div class="panel"><div class="panel-body"><!--router-view确定视图的位置--><router-view></router-view></div></div></div></div></div>
</template><script>
export default {name: "App",
}
</script>
<style lang="css" scoped></style>

main.js

//引入Vue
import Vue from "vue";
//引入App
import App from './App';
//引入vue-router
import VueRouter from "vue-router";
import router from './router';//关闭Vue的生产提示
Vue.config.productionTip = false;//应用vue-router插件
Vue.use(VueRouter);new Vue({el: '#app',render: h => h(App),router
});

About.vue

<template><h2>我是About的内容</h2>
</template><script>
export default {name: "About"
}
</script><style scoped></style>

Home.vue两个很相似

<template><h2>我是Home的内容</h2>
</template><script>
export default {name: "Home"
}
</script><style scoped>
</style>

嵌套(多级)路由

shift + Tab 是往前缩进 Tab是往后缩进

路由路径的变化

 路由传参

后端的问号传参,经典的,b站就使用了这个

传参的两种方式

命名路由

 params参数

两种写法

props写法

children:[
{name:'xiangqing',path:'detail',component:Detail,//props的第一种写法,值为对象,该对象中的所有key-value都会以props的形式传给Detail组件。// props:{a:1,b:'hello'}//props的第二种写法,值为布尔值,若布尔值为真,就会把该路由组件收到的所有params参数,以props的形式传给Detail组// props:true//props的第三种写法,值为函数Iprops($route){return{id:$route.query.id,title:$route.query.title}}    

router-link 

P125主要是什么?

编程式路由导航

缓存路由组件

如何在组件输入后,切换了不把组件销毁?

如果keep-alive 什么都不写,就代表此处展示的所有组件都保持活跃,因此include="News"来限定范围

 多个缓存

 <keep-alive :include="['News','Messages']"><router-view></router-view></keep-alive>

两个新的生命周期钩子

提示: 这2个钩子函数需要配合 keep-alive 标签使用

128_尚硅谷Vue技术_两个新的生命周期钩子_哔哩哔哩_bilibili

路由守卫

保护路由安全,判断是不是的条件(权限)才能。

全局前置

前端把本地存储的jwt给安全框架认证,过了的话给一个返回值,根据返回值来跳转路由吧,编程式路由

 全局后置

因为你还是在让服务器控制页面的跳转。完全违背了前后端分离的初衷。这个已经超出了后端的工作范围,后端只保证数据安全:即让特定的人拿到特定的数据。而页面安全:即让特定的人访问特定的页面。是前端的工作。

 P130

独享路由守卫

P131

组件内路由守卫

P132

hash和history

hsah是不会发给服务器的,还有history模式

hash是由#,但是history只要/即可,但是他在ie中难以使用

npm run build

进行打包出来dist,(webpack)然后node express部署

npm init
然随便起个名字
atguigu_test_servernpm i express写代码server.js
cli
node server

server.js

const express = require('express')const app = express()
app.use(express.static(__dirname+'/static'))app.get('/person',(req,res)=>{res.send({name:'tom',age:18})
})app.listen(5005,(err)=>{if(!err) console.log('服务器启动成功!')
})

发现history模式更麻烦,不如hash,因为刷新就cannot GET

如何解决?什么java库阿,后端的某些配合,nginx阿

但是此库可以解决部分问题

 VUE UI组件库

最后两集懒得卡吗啊啊啊

http://www.lryc.cn/news/439824.html

相关文章:

  • 【QT】常用类
  • 从index_put出发全面学习cuda和pytorch技术
  • 浅谈住房城乡建设部科技创新平台布局重点方向
  • 调用 write()函数后,如何知道数据是否已经写入磁盘?
  • 策略路由与路由策略的区别
  • 从底层原理上理解ClickHouse 中的稀疏索引
  • xtu oj 锐角三角形
  • MATLAB系列04:循环结构
  • 虹科方案 | 精准零部件测试!多路汽车开关按键功能检测系统
  • 【加密算法基础——AES CBC模式代码解密实践】
  • 【ViT+Dis】Deepfake Detection Scheme Based on Vision Transformer and Distillation
  • maya-vray渲染蒙版
  • 计网简简单单复习一下
  • PyQt5-loading-圆环加载效果
  • RabbitMQ Spring客户端使用
  • Arduino IDE离线配置第三方库文件-ESP32开发板
  • Node.js 安装及项目实践
  • 如何从混合信号中剔除某一信号——Schmidt正交化的使用(信号互相关)
  • I2C/IIC学习笔记
  • Servlet学习详解--基本涵盖所有Servlet知识点
  • LabVIEW机械手视觉引导系统
  • rabbitmq容器化部署
  • 如何用 Helm Chart 安装指定版本的 GitLab Runner?
  • el-table使用合计和固定列时,滚动条被覆盖区域无法拖拽问题
  • 【疑难杂症2024-005】docker-compose中设置容器的ip为固定ip后,服务无法启动
  • uView使用心得
  • RabbitMQ(高阶使用)死信队列
  • 怎么安装docker-compose
  • 【机器学习】--- 自监督学习
  • 【Linux修行路】网络套接字编程——UDP