svg学习 路由跳转方式以及传(获取)参 路由获取参数 懒加载

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

路由跳转方式以及传(获取)参

在这里插入图片描述

路由获取参数


        function pag(url) {
   
            //获取路由参数对象
            let obj = {
   }
            let search = location.search.substr(1)//id=1name=rpse&age=18
            //   console.log(search);
            let arr = search.split('&')//[id=1,name=rpse,age=18]
            //   console.log(arr);
            arr.forEach(item => {
   
                let arr2 = item.split('=')//单个数组属性加值[id,1]  [name,rpse] [age,18]
                obj[arr2[0]] = arr2[1]  //{id:1} 
            })
            return obj
        }
        console.log(pag(location.search));
        // 浏览器自带的    不能直接href
        // new   URLSearchParams(location.search.get('age'))//18

懒加载

如何处理 打包出来的项目(首屏)加载过慢的问题

SPA应用: 单页应用程序, 所有的功能, 都在一个页面中, 如果第一次将所有的路由资源, 组件都加载了, 就会很慢!

加载过慢 => 一次性加载了过多的资源, 一次性加载了过大的资源

  • 加载过多 => 路由懒加载, 访问到路由, 再加载该路由相关的组件内容
  • 加载过大 => 图片压缩, 文件压缩合并处理, 开启gzip压缩等

比如:

路由懒加载
  1. 配置异步组件, 路由懒加载
   const login = () => import('../pages/login.vue')
 
  1. 图片压缩: 使用 webp 格式的图片, 提升首页加载的速度

  2. CDN加速: 配置CDN加速, 加快资源的加载效率 (花钱)

  3. 开启 gzip 压缩 (一般默认服务器开启的, 如果没开, 确实可能会很慢, 可以让后台开一下)

图片懒加载是怎么实现的?

就是我们先设置图片的data-set属性(当然也可以是其他任意的,只要不会发送http请求就行了,作用就是为了存取值)值为其图片路径,由于不是src,所以不会发送http请求。 然后我们计算出页面scrollTop的高度和浏览器的高度之和, 如果图片距离页面顶端的坐标Y(相对于整个页面,而不是浏览器窗口)小于前两者之和,就说明图片就要显示出来了(合适的时机,当然也可以是其他情况),这时候我们再将 data-set 属性替换为 src 属性即可。

组件传值

Vue2最常见的11种组件间的通讯方式

1.props  ,  2.$emit / v-on  ,  3. .sync ,4. v-model,5.ref,6.$children /$parent,
7.$attrs/$listeners,8.provide/inject,9.EventBus,10.Vuex,11.$root,12.slot

在这里插入图片描述

.sync子组件可以修改父组件内容

Parent.vue:
<template>
    <child :page.sync="page"></child>
</template>
<script>
export default {
   
    data(){
   
        return {
   
            page:1
        }
    }
}

 Child.vue:
export default {
   
    props:["page"],
    computed(){
   
        // 当我们在子组件里修改 currentPage 时,父组件的 page 也会随之改变
        currentPage {
   
            get(){
   
                return this.page
            },
            set(newVal){
   
                this.$emit("update:page", newVal)
            }
        }
    }
}
</script>

1. props Vue组件 props

组件是Vue最强大的功能之一;组件化编程,允许我们使用小型,独立,通用的可复用型组件构建大型应用;任何页面都可以抽象为组件树;

//props数据验证

//数据验证的type类型可以是String,Number,Boolean,Object,Array,Function,type也可以是一个自定义的构造器,使用instanceof 检测当prop验证失败的时候,在开发版本下会在控制台抛出一条警告
props
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

All rivers run in to the sea

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值