vue
- 单页应用的优缺点
单页应用:只有一个web页面作为入口,在浏览器运行期间不会重新加载页面,即浏览器一开始会加载它必需的html、css和js,之后的交互操作都在一个页面完成。由js动态加载合适的内容响应客户的操作,因此一个web页面会包含大量的js代码,支持单个页面上与多个组件进行交互
优点:
1、具有桌面应用的即时性、网站的可移植性和可访问性。
2、单页应用的内容的改变不需要重新加载整个页面
3、单页应用没有页面之间的切换,就不会出现“白屏现象”,也不会出现假死并有“闪烁”现象。
4、服务器只用出数据就可以,**不用管展示逻辑和页面合成,吞吐能力会提高几倍。
5、前后端分离,后端不再负责渲染,输出页面,后端API通用化
vue数据双向绑定原理
vue数据双向绑定是通过数据劫持结合发布者-订阅者模式的方式来实现的
var vue = new Vue({
data: {
obj: {
name: 'jack',
age: 12
}
},
created: function() {
console.log(this.obj)
}
})
实现mvvm主要包含两个方面,数据变化更新视图,视图变化更新数据
-
组件通信的方法
父传子:props 子传父:$emit
-
Vuex
vuex是专门为vue.js应用程序开发的状态管理模式,每一个vuex应用的核心就是store
store:仓库,包含应用中大部分的state
-
nextTick
vue.nextTick():用于延迟执行一段代码,两个参数(回调函数,执行回调函数的上下文环境),如果没有回调函数,返回promise对象
-
-
写一个通用组件需要考虑哪些问题
高性能、低耦合
「1」数据从父组件传入
子组件本身不生成数据,即使生成了,也只能在组件内部运作,不能传递出去。
父对子使用props传参,对 props 传递的参数应该添加一些验证规则
「2」在父组件中处理事件
事件的处理尽量放到父组件中,如复选框的change事件,按钮的click事件;通用组件本身作为一个中转
「3」slot
在封装组件的时候,只需要完成组件80%的功能,剩下的让父组件通过slot完成
slot:
「4」不要依赖vuex
父子组件通过props传参,非父子之间通常使用vuex传参。Vuex类似于全局变量,会一直占用内存。
「5」合理运用scoped编写css
在编写组件的时候,可以在