1、 MVVM中,M V VM分别表示什么?作用是什么?
module - view -viewmodule 主要目的是分离v和m,使用vm将他们连接起来
当m发生改变时,会通过mvvm框架对view的状态进行自动更新
当v发生改变时,会通过mvvm框架对module的数据进行自动更新
2、 简述什么是单页,以及单页的优缺点
单页web应用,是指只有一个web页面的应用程序,加载单个html页面,
在用户与程序进行交互时动态进行页面更新的应用程序
优点:
- 用户体验好,速度快,内容的修改不会引起页面的整体刷新
- 前后端分离
- 页面效果炫酷
缺点:
- 不利于seo
- 导航不可用(需要自己建立堆栈管理)
- 页面初次加载时速度较慢
- 页面复杂程度提升
3、Vue中的src文件夹一般都是放置哪些文件/文件夹?
assets:文件夹用来放置静态资源目
components:功能组件
views:页面组件
router:路由文件
store:vuex的数据
app.vue:首页,初始化页面
main.js:入口文件
4、简述Vue中的生命周期函数(钩子函数)以及作用?
beforecreate//初始化前
created//初始化完成(页面加载完成时)
beforemount//挂载前
mounted//挂载完成
beforeupdate//更新前
updated//更新完成
beforedestroy//销毁前
destroyed//销毁完成
5、前后台分离,跨域问题如何解决?
使用Nginx代理:Nginx统一程序入口,通过Nginx分发到不同的服务。
JSONP,通过<script>标签请求接口,通过回调函数的方式传递跨域数据。
CORS,一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)
CORS需要浏览器和服务器同时支持。
- 所有浏览器都支持该功能
- 服务器需要单独配置使用 @CrossOrigin 或 全局配置类
6、Vue-router作用是什么
Vue Router 是 Vue.js 官方的路由管理器。
通过<router-link>完成组件的切换
通过 this.$route 完成组件的传参
通过 this.$router.push 完成组件的跳转
7、Vue中父子组件之间的传值是怎么实现的?
父组件向子组件传递,子组件使用props接收父组件传递的数据。(自定义属性)
子组件向父组件传值,子组件通过$emit()触发父组件的事件,父组件通过v-on绑定的函数函数接收值。
(自定义事件)
非父子组件之间传值,使用公共文件。
8、Vue中,路由如何传参,如何获取路由传递的参数?
- 方式1:请求参数,/user?id=123
路由的路径
<router-link to="/user?id=1234"></router-link>
参数的获取:this.$route.query.name
- 方式2:路由参数、 /user/1234
路由的路径
<router-link to="/user/1234"></router-link>
路由的配置:{ path: '/user/:id' }
参数的获得:this.$route.params.id
9、Vuex怎么实现数据共享的?
vue整合vuex,在main.js文件中,vue以组件的方式导入store.js
将数据存放到 store.js 的 state 区域,任何位置都可以引用。
通过store.js的 mutations可以对state区域的数据进行更新。
通过读写最终达到数据的共享。
10、Vue全家桶有哪些?
Vue两大核心思想:组件化和数据驱动。
组件化:把整体拆分为各个可以复用的个体,
数据驱动:通过数据变化直接影响dom展示,避免dom操作。
Vue-cli是快速构建这个单页应用的脚手架。
vue-router路由,组件之间的切换。
Vuex数据管理。
axios是一个http请求包,vue官网推荐使用axios进行http调用。(ajax操作)