首页 > 其他分享 >vue的路由实现及sass

vue的路由实现及sass

时间:2023-03-15 20:15:27浏览次数:57  
标签:vue hash sass 编译 对应 路由 页面

day27 vue的路由实现及sass

路由

前端路由

根据对应的url地址来渲染不同的内容

前端路由的分类

  • 页面路由 (通过页面的跳转来完成对应的切换(刷新页面))

  • hash路由(通过对应的hash值变化来控制内容的渲染(onhashchange)(页面不刷新 只有一个页面))

  • histroy路由(通过对应的地址的变化来控制内容的渲染(onpopstate)(页面不刷新 只有一个页面))

    SPA

    单页应用程序,只有一个页面,控制渲染内容来完成对应的页面内容的切换,一个页面的设计的好处在于对应的页面切换的操作不再依赖于刷新(减少了页面的重绘和回流操作),单独一个页面打出来的包的大小也相对较小。单页应用的坏处在于不利于seo(电商网站不可能使用SPA)react和vue 都是为了减少对应的重绘和回流提高对应的性能。所以他一般都是采用对应的单页页面应用。所以主要采用的路由的模式为hash路由、history路由。默认情况下为hash模式。

后端路由

根据对应的访问地址返回不同数据 或渲染不同的内容

SSR

服务器渲染,服务器渲染的话他也有对应的好处 利于seo,速度快。坏处在于代码量大维护起来较为困难,对于服务器压力大

一般的大型电商网站都是采用ssr配合对应的SPA来共同作用。(前端采用的是vue的技术栈 配合ssr的框架 nuxt.js 前端采用的是react 配合的是next.js)

hash路由

vue中的hash实现

利用onhashchange事件监听hash值的变化

通过对应的routes规则

history路由

onpopstate进行监听

将a的内容全部重写(通过pushState来完成)

Sass

sass概述

sass是一个预编译css,和less(底层实现是js)属于一样的东西,他底层采用的是python环境Ruby语言书写,支持基本的css语法,最终还是会编译为css,他在node环境中不需要手动编译它会自动编译(sass-load的包)。

sass的编译环境

借助node来进行编译

按照对应的sass及sass-load

npm i sass, sass-load

借助第三方插件来进行编译

配置对应的easy sass (你需要将sass保存到什么地方 什么时候进行编译)

sass的书写

sass后缀(以缩进为区分 跟less一样) scss后缀(跟css语法一致)

sass的相关应用内容

支持变量定义 使用$

$color:#0f0
div{
color:#color
}

支持运算符

$size:10px;
.content{
font-size:$size*10;
width:$size+10;
hight:$size - 5;// 减号要隔开
}

支持注释

// 单行注释 单行注释不被编译

/**/ 多行注释 文档注释 会被编译

支持条件判断

@if expr{}

$width:100px;
.context{
  @if $width>100{
      width: $width - 10;
  }
  @else{
      width:$width + 10
  }
}

循环

@for

@for $i from 12 to 20{// 不包含20
  // 变量占位符#{}
  .item_#{$i}{
      font-size: $i+px;
  }
}

函数(为了获取返回值)

混入器(为了设置对应的内容)

@mixin 设置

@include 引入

模块化

@import

image-20230314174153667

继承

@extend 实现继承

image-20230314174504172

sass和less的区别(面试题)

 

标签:vue,hash,sass,编译,对应,路由,页面
From: https://www.cnblogs.com/balloontrue/p/17219800.html

相关文章

  • Vue模板语法 && 数据绑定
    模板语法Vue模板语法包括两大类插值语法功能:用于解析标签体内容。写法:{{xxx}},xxx是js表达式,可以直接读取倒data中所有区域。指令语法功能:用于解析标签(包括:标签属性......
  • vue中 给企业微信自建应用授权(静默授权,手动授权,扫码授权)
    在web开发中,会遇到通过企业微信授权的形式进行免登录或快速登录的需求。如果该应用是企业微信自建应用,那可以在管理平台获取到相应的appId和agentid等必要参数。企业微信......
  • Vue.js 数据代理-回顾Object.defineProperty方法
    视频<!DOCTYPEhtml><html> <head> <metacharset="UTF-8"/> <title>回顾Object.defineproperty方法</title> </head> <body> <scripttype="text/javascript"......
  • 常用的Vue富文本编辑器:
     Quill:Quill是一个现代化、可定制的富文本编辑器,提供了许多有用的功能,如文本样式、列表、媒体插入等。在Vue中可以使用vue-quill-editor来集成Quill。CKEditor5:CKE......
  • Vue.js 数据绑定
    视频<!DOCTYPEhtml><html> <head> <metacharset="UTF-8"/> <title>数据绑定</title> <!--引入Vue--> <scripttype="text/javascript"src="../js/vue.js"......
  • Vue.js 模板语法
    视频<!DOCTYPEhtml><html> <head> <metacharset="UTF-8"/> <title>模板语法</title> <!--引入Vue--> <scripttype="text/javascript"src="../js/vue.js"......
  • vue + djangorestframework實現文件下載功能
    1.安裝模塊及配置及配置先安裝django-cors-headers包pip3installdjangorestframeworkdjango-cors-headers 在setting文件中註冊appINSTALLED_APPS=['djang......
  • vue入门篇之Vue.js 组件
    Vue.js组件是该框架最强大的功能之一,能够扩展HTML元素并封装可重用的代码。通过组件系统,我们可以使用独立可复用的小组件来构建大型应用,几乎任何类型的应用的界面都可以......
  • Java:SpringBoot获取所有接口的路由映射关系
    重要:版本很重要,先说一下版本,版本不一样,可能获取结果也不一样spring-boot2.7.7java1.8定义一个查看路由的数据结构packagecom.example.demo.entity;importlombok.......
  • vuex的应用
    需求:系统顶部添加项目下拉框,顶部下拉框选项改变时其他模块下拉框同时改变。1.开始进入系统的时候获取项目列表页面调用接口//获取项目列表store.dispatch("getProj......