Vue
-
什么是MVVM?
-
mvvm和mvc区别?它和其它框架(jquery)的区别是什么?哪些场景适合?
-
组件之间的传值?
-
Vue 双向绑定原理
-
描述下 vue 从初始化页面–修改数据–刷新页面 UI 的过程?
-
虚拟 DOM 实现原理
-
Vue 中 key 值的作用?
-
Vue 的生命周期
-
Vue 组件间通信有哪些方式?
-
vue 中怎么重置 data?
-
组件中写 name 选项有什么作用?
-
Vue 的 nextTick 的原理是什么?
-
Vuex 有哪几种属性?
上图就是前端编程路由跳转的规则,点击导航根据路径跳转到对应的组件;也是一种映射关系,多个路由的映射关系由前端路由器统一管理配置;
===========================================================================
编程中的路由是为了实现SPA(single page web application)应用(单页面应用);
单页面应用就像vue和react只有一个html页面,页面和局部内容改变通过路由跳转完成;多页面应用就是多个html页面,经过点击链接跳转到对应的html页面;
对SPA(单页面应用)的理解:
-
单页面应用
-
整个应用只有一个完整的页面index.html
-
点击页面中的导航不会刷新页面,只会也页面局部更新
-
数据需要通过ajax请求获取
===========================================================================
前面说过关于路由的概念:
-
一个路由就是一组映射关系;
-
Key为路径,value可能就是一个函数或者组件
官方是这样定义的:
Vue Router 是 Vue.js 的官方路由。它与 Vue.js 核心深度集成,让用 Vue.js 构建单页应用变得轻而易举。功能包括:嵌套路由映射,动态路由选择,模块化、基于组件的路由配置…
上面为什么说key路径对应的value有可能是一个函数,因为路由也 前端和后端之分;
后端路由:
-
value是funtion,用于处理客户端提交的请求
-
服务器接受到一个请求时,根据请求路径找到匹配的函数来处理请求,返回响应数据
前端路由:
-
value是component,用于显示页面内容
-
当浏览器路径发生变化时,对应的组件就会显示
===========================================================================
路由的基本使用,其实官方介绍的很详细;这里注意一下,vue2.x版本使用路由V3.x版本,vue3.x版本使用路由V4.x版本;
如果你在最初创建项目的时候,选择一起安装vue-router的话,项目代码也就配置好了,下面我们来手动安装配置一下;(以vue3项目为例)
首先,在项目中安装vue-router
npm install vue-router@4
其次,在src文件夹下面创建一个router文件夹,并在其下创建index.js
import { createRouter, createWebHashHistory } from 'vue-router'
import Login from '../views/Login.vue'
const routes = [
{
path: '/login',
component: Login
},
{
path: '/home',
component: () => import('../views/index.vue'),
}
]
const router = createRouter({
history: createWebHashHistory(),
routes
})
export default router
然后,在main.js里面注册路由
import {createApp } from 'vue'
import App from './App.vue'
import router from './router'
const app = createApp(App)
app.use(router)
最后,在项目组件中添加 < router-view /> 视图
路由可以多层嵌套,这里就不多讲啦,具体可以查看官网中的嵌套路由的具体讲解;
======================================================================
- < router-link >标签传参
前面我写过专门的介绍,可点击vue中路由传参方式之一(router-link 进行页面按钮式路由跳转传参)查看;
- 编程式路由传参
前面我写过专门的介绍,可点击vue中路由传参方式之二(this.$router.push进行编程式路由跳转传参)查看;
======================================================================
全局路由守卫
-
beforeEach( (to,from,next) => {}) — 在初始化和路由切换之前调用
-
afterEach((to,from) => {}) — 在初始化和路由切换之后调用
项目中可以利用beforeEach全局前置路由守卫来做权限路由访问
独享路由守卫
- beforeEnter(to, from,next) — 某个路由独享的,只有进去之前
const routes = [
{
path: '/home',
component: () => import('../views/index.vue'),
beforeEnter: (to, from,next) => {
//符合权限的可以进去该单个路由
...
},
},
]
ES6
-
列举常用的ES6特性:
-
箭头函数需要注意哪些地方?
-
let、const、var
-
拓展:var方式定义的变量有什么样的bug?
-
Set数据结构
-
拓展:数组去重的方法
-
箭头函数this的指向。
-
手写ES6 class继承。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
微信小程序
-
简单描述一下微信小程序的相关文件类型?
-
你是怎么封装微信小程序的数据请求?
-
有哪些参数传值的方法?
-
你使用过哪些方法,来提高微信小程序的应用速度?
-
小程序和原生App哪个好?
-
简述微信小程序原理?
-
分析微信小程序的优劣势
-
怎么解决小程序的异步请求问题?