springboot vue前后端分离项目,Vue+SpringBoot前后端分离中的跨域问题
vue+SpringBoot前后端分离学习经验在前后端分离开发中,需要前端调用后端api并进行内容显示,如果前后端开发都在一台主机上,则会由于浏览器的同源策略限制,出现跨域问题(协议、域名、端口号不同
顺晟科技
2021-09-13 12:11:24
232
MVVM 是 Model-View-ViewModel 的缩写。mvvm 是一种设计思想。
Model 层代表数据模型,View 代表 UI 组件。
区别:主要就是 mvc 中 Controller 演变成 mvvm 中的 viewModel。mvvm 主要解决了 mvc 中大量的 DOM 操作使页面渲染性能降低,加载速度变慢,影响用户体验。和当 Model 频繁发生变化,开发者需要主动更新到 View
当data是一个函数的时候,每一个实例的data属性都是独立的,不会相互影响
采用数据劫持结合发布者-订阅者模式的方式,通过 Object.defineProperty()来劫持各个属性的 setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调。
简单描述就是view层输入值影响data的属性值,data属性值发生改变会更新view层的数值变化。
在下次 DOM
更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM
。
相同点:
computed 和 watch 都是以vue的依赖追踪为基础的,
都是希望当依赖发生改变的时候,被依赖的数据根据预定好的函数发生改变。
不同点:
watch 监听,一般是监听一个数据,从而影响多个数据
computed 计算属性, 一般是计算一个属性,这个属性受多个数据影响
相同点:两个都是让元素不可见
不同点:v-show控制的时元素的display属性,无论初始条件是否成立,都会渲染标签。
v-if只有在条件成立时才渲染为真实的标签,条件为假,不会去渲染标签
频繁切换时,使用v-show
多路分支,选择v-if
更新视图但不重新请求页面
vuex 仅仅是作为 vue 的一个插件而存在, 只能使用在 vue 上,很大的程度是因为其高度依赖于 vue 的 computed 依赖检测系统以及其插件系统,vuex 中的 store 本质就是没有 template 的隐藏着的 vue 组件;
v-for比v-if优先,如果每一次都需要遍历整个数组,将会影响速度,尤其是当之需要渲染很小一部分的时候。
如果连用的话会把 v-if 给每个元素都添加一下,会造成性能问题。
keep-alive 是 Vue 内置的一个组件,可以使被包含的组件保留状态,避免重新渲染
1. 将所有的数据都放在data中,data中的教据都会增加getter和setter,会收集对应的watcher
2. vue在v-for时给每项元素绑定事件需要用事件代理
3. spa页面采用keep-alive缓存组件
4. 拆分组件(提高复用性.增加代码的可维护性,减少不必要的渲染)
5. vif当值为false时内部指令不会执行,具有阻断功能,很多惆况下使用v-if代v.show
6. key保证性(默认vue会采用就地复用策略}
7.object.freeze 冻结教据(就不会getter和setter)
8. 合理使用路由懒加载、异步组件
9. 尽量采用runtime运行时版本
10. 教据持久化的问题(防抖、节流)
1.使用第三方框架,按照按需加载导入
2.滚动可视化区域懒加载
3.图片懒加载
1.使用 cdn 的方式加载第三方模块
2.多线程打包 happypack
3.splitChunks 抽离公共文件
4.sour ceMap 生成
1.客户端缓存 or 服务端缓存
2.服务端 gzip 压缩
23
2022-09
13
2022-09
13
2022-09
13
2022-09
13
2022-09
03
2022-09