前言:开始学习vue,后端同事问了几个问题,在这里总结一下,谈谈自己的理解,针对人人开源的那个网站的前端demo文件进行说明,人人网是一个非常好的前后端模板下载网站
- 演示地址:http://fast.demo.renren.io
- 账号密码:admin/admin
- 前端下载地址:https://github.com/daxiongYang/renren-fast-vue
- 前端部署文档:https://github.com/daxiongYang/renren-fast-vue/wiki/Getting-started
1.vue项目中那么多入口文件?程序执行究竟是先加载哪个入口?
App.vue文件你可以理解是一个大的主组件,所有的小组件都是包含在这个主组件中,页面的切换其实就是在切换这个主组件中的小组件,
main.js是程序的入口文件,用于加载各种小组件,并将这些挂载到APP.vue上;
在index.html中,一般会定义一个id=app的元素,这个元素其实就是APP.vue主组件的入口。你在main.js中能看到
new Vue({
el: ‘#app’,
router,
store,
template: ‘’,
components: { App }
})
这里的components: {App}就是APP.vue文件;将主组件引入到页面中进行显示;
我理解的顺序是main.js–>app.vue–>index.html这样的顺序;
2.项目中用webpack将js、css转换为静态资源,减少请求?这个是怎么体现的,不是很明白?
webpack是一个大包工具,在其眼中,一切皆模块,在项目中一般会有一个叫webpack.config.js的文件,其中就是保存了webpack的配置;
里面描述了webpack处理文件的相关配置;
在这些配置中你可以设置将多个js文件,或者多个css文件合并成一个js文件或者css文件,实现代码的合并,这样我们的页面最终在
加载文件的时候,请求的资源就变少了;继而达到减少http请求的目的。
3.我觉得使用vue.js和bootstrap.js就可以开发出一些管理系统的页面了,为什么还要引入vuex.js?它的store具体能有什么用?
Vue框架三大核心特点中有组件开发这一条,组件开发的目的是实现UI块的复用,避免大量的重复性工作,且能做到集中管理,一改全改的目的;
但是当用组件来写页面时,涉及到各个组件之间的通信(一个组件数据的变化可能牵扯到别的组件数据的变化),使用vue中的组件之间传递方法将
会变得异常复杂,所以Vue就发明了VueX,他的store就相当于一个公共的仓库,当项目比较大时,将所有的数据保存到这个仓库里。这里的数据
和组件进行双向绑定,当一个组件改了数据后,所有的组件都会跟着改变;
打个比方,你可以理解他相当于浏览器中的localStorage,一个页面把数据存进去,别的页面都能使用其中的数据了;
Vue官方建议当项目较大,较复杂时,再使用VueX,小项目就显得有些多余了;
4.vue.js可以写在html页面就可以运行了,为什么很多页面都是xx.vue文件来写?
我的理解是Vue框架在设计的时候希望组件化开发,一个组件(也就是一个.vue文件)他应该是一个完整的小页面
(小页面要包括style/template/js三个部分组成),将多个这种组件合并到一起才组成了一个html完整的页面;
你如果每个页面都是用html文件来写,就不能实现页面的拼接组合了,简单说,就是为了实现Vue的组件目的,其
自己定义了新的文件格式.vue;
5.前端项目文件在打包后,会产生一个source map文件,这个文件具体有啥作用?不会造成页面加载资源的增多吗?
加载的资源文件在压缩后,浏览器在报错时,所报的错误行多余调试来说,没有意义,这个文件可以帮助我们找到对应的实际开发代码的位置,便于我们快速定位问题;
—以上问题是对于同事的问题的简单回答,有觉得说的不到位的欢迎大家评论指正