前端
学习 Vue3.0 (3)
Fragment
在 Vue 2 中,组件必须有一个根标签
在 Vue 3 中,组件可以没有根标签,内部会将多个标签包含在一个 Fragment 虚拟元素中
减少标签嵌套层级、减少内存占用
Teleport
能够将组件内部的某些内容渲染到外部的某个元素上
<teleport to="targetDom">
<div v-if="isShow">
<
SPA首屏加载速度慢的怎么解决?
首屏时间:浏览器从输入网址到首屏内容渲染完成的时间,此时整个网页不一定要全部渲染完成,但需要展示当前视窗需要的内容
加载慢的原因:
1、网络延时问题
2、资源文件体积是否过大
3、资源是否重复发送请求去加载了
4、加载脚本的时候,渲染内容堵塞了
常见的优化方式主要分为资源加载优化和页面渲染优化:
1、前端合理利用localStorage,后台返回资源采用HTTP缓存,设置Cache-Control
jsPDF的常规使用
引入方式:
CND:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.3.1/jspdf.umd.min.js"></script>
Npm:
npm install jspdf jspdf-autotable
HTML 转 PDF
出发事件:
<button onclick="generat
Vue-根据角色生成动态路由及菜单-1-vue脚手架创建项目
根据登录用户的角色,生成路由后addRoute、生成菜单栏基本思路:
1. 用户在登录页输入 用户名+密码 请求后端 login接口 拿到 token 后保存到cookie或sessionStorage中;
2. 接着携带拿到的token请求后端 userInfo 接口,获得用户基本信息及角色role;
3. 前端维护路由表,除了不需要权限限定的页面外其余每个路由添加met
Px,em,rem的区别
在css中单位长度用的最多的是px、em、rem,这三个的区别是:
1.px是固定的像素,一旦设置了就无法因为适应页面大小而改变。
2.em和rem相对于px更具有灵活性,他们是相对长度单位,长度不是定死了的,更适用于响应式布局。
3.em是相对于其父元素来设置字体大小的,一般都是以<body>的“font-size为准。这样就会存在一个问题,进行任何元素设置,都有可能需要知道他父元
网站内容禁止复制的js代码
网站内容禁止复制的js代码
这篇文章主要介绍了JS如何实现网站内容禁止复制的方法,希望可以帮助到你~
方法1:
在网页中加入以下代码:
document.oncontextmenu=new Function("event.returnValue=false");
document.onselectstart=new Function("event.returnValue=false");
方法2
vue使用keep-alive实现页面前进刷新,后退缓存,完美运行无bug
vue中,我们有时候需要实现这种场景:
1.搜索页面到列表页面,需要刷新重新获取数据。
2.从详情页面返回列表页面需要记住上次浏览的状态。具体流程如下:
效果图
第一步:在路由配置文件中为列表页设置meta参数,里面包含useCatch和keepAlive
{
path: "/sportPrdtList",
name: "sportPrdtList",
【R画图学习17.1】拼图软件1---patchwork
其实前面在学习的时候也陆陆续续的用过一些拼图的包,像par,cowplot,patchwork等。但是,感受下来好像最好用的还是patchwork,所以今天详细的学习一下。因为最新版本里面支持将ggplot与non-ggplot对象进行拼接。并且还有其它很多优点:可以给子图添加标记(ABCD...);可以将子图的图例移到一起;可以统一修改子图;也可以直接p1+p2出图等。
我们用自带的mtcars
CSS基础-13-垂直导航栏(详细创建过程)
@[toc]
前言
一步一步做出一个完整的导航栏
1. 最简导航栏
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>hello world</title>
<style>
ul {
list-style-type: none;