Vue2.x和webpack踩坑与总结
来源:互联网 发布:网络电视盒刷机软件 编辑:程序博客网 时间:2024/06/03 06:04
Vue2.x
1、hash和history模式
在项目初始中,为hash模式下,hash模式,我们知道,它背后的原理是onhashange,onhaschange的定义如下:
当锚部分发生变化时执行;
这样子,就成了路由的基本操作方式,但是hash模式会使链接产生/#/,hash模式回退不方便,而且无法使用描点定位。如果使用hash方法,为了使页面不会刷新,一般这样干:
如果要是a标签不会刷新,那么需要在a标签的路径前面加#,正常a标签hash模式得href=’#/home’
这样就有了hidtory模式。
history模式使用方法:
new router({mode:'history',routes:[]})
histroy模式用a标签会跳转链接刷新页面,这是因为a标签的默认行为
解决方式用<router-link to='/home'></router-link>
(不管是hash还是history都支持).
2、滚动事件
在实际开发过程中,如果我们在前进活着后退的过程中想要记录滚动条的位置,就是在后退之后的前面的一个页面,滚动条还停留在之前的位置,我们可以在vueRouter中添加scrollBhavior对象:
scrollBehavior(to,from,savePosition){//点击浏览器的前进或者后退,或者切换导航的时候触发 console.log(to);//进入的目标路由对象,去向哪里 console.log(from);//离开的路由对象,从哪里来 console.log(savePosition);//记录滚动条的坐标,点击前进或者后退的时候记录的值 //设置坐标的一种方式 // if(savePosition){ // return savePosition; // }else{ // return {x:0,y:0} // } //hash模式,另外一种方式 if(to.hash){ return { selector: to.hash } } }
hash模式中我们需要在组件的路径中添加”/#xxx”,而且,还需要在文章的描点出添加id=”xxx”即可。
3、动态路径
匹配到所有路由,全部映射到一个组件
路径:/user/userId //userId为动态路径参数
获取参数:路由信息对象的parmas
在需要显示的地方可以这么写:
<template> ... <ul> <li v-for="app in appList"> <router-link :to="'/User/'+item.id" v-for="(item,index) in userList">{{item.userName}}</router-link> </li> </ul> ... </template>
在引入的路由里面,需要写上
{ path:'/User/:userId?', component:User}
4、导航钩子函数
执行钩子函数的位置:
router全局
单个路由
组件中
钩子函数:
router实例上:beforeEach, afterEach
单个路由中:beforeEnter
组件内的钩子:beforeRouteEnter, beforeRoteUpdate, beforeRouteLeave
钩子函数的参数:
to: 要进入的目标,路由对象,到哪里去
from:正要离开的路由对象,从哪里来
next:用来决定跳转或取消导航
5、生命周期
Vue.js 实例在创建时有一系列的初始化步骤,例如建立数据观察,编译模板,创建数据绑定等。
注:图片出自https://segmentfault.com/a/1190000008570622,侵权删。
beforeCreate
在实例初始化之后,数据观测(data observer) 和 event/watcher 事件配置之前被调用。此时数据观测、事件等都尚未初始化。
created
实例已经创建完成之后被调用。在这一步,实例已完成以下的配置:数据观测(data observer),属性和方法的运算, watch/event 事件回调。然而,挂载阶段还没开始,$el 属性目前不可见。
beforeMount
在挂载开始之前被调用:相关的 render 函数首次被调用。
mounted
el 被新创建的 vm.$el 替换,并挂载到实例上去之后调用该钩子。
beforeUpdate
数据更新时调用,发生在虚拟 DOM 重新渲染和打补丁之前。 你可以在这个钩子中进一步地更改状态,这不会触发附加的重渲染过程。
updated
由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子。
当这个钩子被调用时,组件 DOM 已经更新,所以你现在可以执行依赖于 DOM 的操作。然而在大多数情况下,你应该避免在此期间更改状态,因为这可能会导致更新无限循环。
该钩子在服务器端渲染期间不被调用。
beforeDestroy
实例销毁之前调用。在这一步,实例仍然完全可用。
destroyed
Vue 实例销毁后调用。调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。 该钩子在服务器端渲染期间不被调用。
6启动显示网页无法正常启动
原因之一:开启全局代理,所以无法显示localhost:8080
- Vue2.x和webpack踩坑与总结
- Vue2.x踩坑与总结
- vue2.0+webpack踩过的坑
- vue2.x vue-cli webpack 初探
- 用webpack搭建Vue2.x开发框架
- 搭建vue2.x+webpack简易开发环境
- 如何创建Vue2.x+webpack项目
- Vue2+VueRouter2+webpack 构建项目总结
- 使用webpack与vue2.0构建前端工程(一)
- vue2+webpack构建项目
- vue2.x的简介与安装
- Vue2.X的路由和钩子函数
- BootStrap3.X+html5+CSS3+Vue2.X 项目问题总结
- vue---vue2.x中如何异步加载路由组件,webpack+vue实现组件懒加载
- Webpack 3.x 通过webpack安装React和Babel
- Vue2接口地址配置(webpack)
- 手动webpack搭建vue2项目
- Ⅲ vue2.0 webpack打包
- ios-实现二维码扫描功能
- EM算法--ML之六
- laravel框架model类简单模板
- 人工智能-语音交互-NLP自然语言(五)
- 最长回文子串-简单版本
- Vue2.x和webpack踩坑与总结
- Error:Failed to open zip file. Gradle's dependency cache may be corrupt (this sometimes occurs after
- linux驱动实例
- mobiscroll时间插件的用法
- 第一周学习总结
- 【末世旅行之逆向破解】破解三国杀脚本,免注册码无限时间全功能使用
- Wannafly挑战赛2 B
- 完美获取Excel数据
- TCP全连接和半连接