当前位置: 首页 > 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组件库

最后两集懒得卡吗啊啊啊

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 如何设置 Django 错误邮件通知 ?
  • 智能工厂的设计软件 单一面问题分析方法的“独角兽”程序
  • Linux进阶 修改文件所有者
  • 衡石分析平台使用手册-替换衡石minio
  • C# USB通信技术(通过LibUsbDotNet库)
  • vue3 axios ant-design-vue cdn的方式使用
  • ★ C++进阶篇 ★ 多态
  • yolov5明厨亮灶检测系统,厨师帽-口罩检测,带pyqt界面-可检测图片和视频,支持中文标签,检测接口已封装好并优化,代码可读性强!
  • QT Layout布局,隐藏其中的某些部件后,不影响原来的布局
  • ffmpeg实现视频的合成与分割
  • 深度学习自编码器 - 随机编码器和解码器篇
  • 深度学习之线性代数预备知识点
  • 幼儿园自动分班工具:使用Python进行实现
  • 如何在kotlin中给空字符串(””)和null值设置默认值问题?
  • Docker数据挂载本地目录
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • crontab执行失败的多种原因
  • docker-consul
  • ES6系统学习----从Apollo Client看解构赋值
  • JavaScript设计模式与开发实践系列之策略模式
  • Promise面试题,控制异步流程
  • python_bomb----数据类型总结
  • React-flux杂记
  • spring + angular 实现导出excel
  • Web设计流程优化:网页效果图设计新思路
  • 浮动相关
  • 观察者模式实现非直接耦合
  • 基于axios的vue插件,让http请求更简单
  • 解析带emoji和链接的聊天系统消息
  • 精彩代码 vue.js
  • 如何实现 font-size 的响应式
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 提醒我喝水chrome插件开发指南
  • 异步
  • 自动记录MySQL慢查询快照脚本
  • 做一名精致的JavaScripter 01:JavaScript简介
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • 浅谈sql中的in与not in,exists与not exists的区别
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • #14vue3生成表单并跳转到外部地址的方式
  • (1)STL算法之遍历容器
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类
  • (LLM) 很笨
  • (STM32笔记)九、RCC时钟树与时钟 第一部分
  • (vue)el-tabs选中最后一项后更新数据后无法展开
  • (二)丶RabbitMQ的六大核心
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (黑马C++)L06 重载与继承
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明