一.关于vue-router
1.vue-route想让它没锚点在配置中加入 mode:'history'
2.route-link默认展示出来的是a标签 想更改就标签 就在route-link中加入 tag=li
3.组件内部进行跳转 this.$router.push({path:'/xxxxx'})
4.vue-router传参比较tricky的是,path只能从path传,params就得用命名路由
要么:
<router-link :to="{ name: 'user', params: { userId: 123 }}">User</router-link>
要么:
<router-link :to="{ path: '/child/red/detail/45'}">User</router-link>
5.有时候需要为router-link注册事件,对于一般的html元素,直接使用@click="eventFun"即可,但是对于router-link,像普通html元素那样注册事件后并不管用,需要添加.native才会成功注册。
事实上给组件绑定原生事件就需要.native修饰v-on,否则无法注册成功。
<my-component v-on:click.native="doTheThing"></my-component>
6.路由的时候配置/显示高亮重定向 {path:'/',redirect:'/xxxxxx'} ;默认展示哪个组件 返回上一级页面 this.$router.back()
二:传值
1.父组件向子组件传值 props
2.子组件向父组件传值 @emit事件
三:其他
1.trainsition结合v-if等才能用
2.slot 父组件里中间有内容 使用子组件就用插槽 slot的作用是插槽,是父组件向子组件传入的模板
3.子组件不能更改父组件传过来的参数
4.移动端300ms延迟解决:fastclick插件
fastclick.attch(document.body)
5.引入文件一般用相对路径./ 想用绝对路径要在bulid里的webpack.base.conf.js做别名配置resolve里的alias
6.encodeURIComponent() 函数作用:可把字符串作为URI 组件进行编码。
7.Object.assign函数的使用,使用该函数我们可以快速的 复制一个或者多个对象到目标对象中
8.jsonp变成json格式的 format:'json'
9.左边固定 右边自适应 用flex布局 img:flex:0 0 60px;text:flex:1
10.可以给标签添加data-index等属性获取一些东西
11.向下取整 math.floor()或者 xxxx | 0
12..路由可能是个层 然后用定位盖住 好像是一个页面一样
13.vuex线下调试const debug=process.env.NODE_ENV! =='production' 在store里开启严格模式 strict:debug 也可以使用插件 import createLogger from 'vuex/dist/logger' 在store里设置plugins:debug? [createLogger()]:[]
14.mapGetters大部分在computed钩子函数定义 ...mapGetters([])
15.引用组件 scroll用this.$refs获取出来的是组件 然后.$el获取到dom
16.控制宽高比 position:relative;width:100%;height:0;padding- top:70% 宽高比为10:7
17.js过渡效果钩子函数enter和leave里面有done
18.js创建css3动画的库 create-keyframe-animation
19.watch 的时候想要在dom操作完之后播放使用this.$nextTick(()=>{})加一个延时
20.快速点击导致dom出现错误:切换歌曲太快的话 audio@canplay可以播放的事件 @error发生错误的时候 标志位来控制歌曲是否可以播放 songReady:false 在canplay的函数中设置为true
21.传值props的时候如果是固定的值可以不用:直接写 如 果是改变的必须用:(v-bind)绑定
22.返回一个包括最大值和最小值的随机数 Math.random包括0不包括1
function random(min,max){
return Math.floor(Math.random()*(max-min+1)+min)
}
23. getBoundingClientRect()用于获取某个元素相对于视 窗的位置集合。集合中有top, right, bottom, left等属性。
24. 一个数组的复本var _arr=arr.slice()
25.对base64的文字进行解码的js库 js-base64 Base64.decode()
26.子组件定义的方法父组件可以加ref然后调用子组件的方法
27.扩展运算符把两个对象添加到一个数组中 ret.push ({...data.zhida,...{type:'singer'}})
28.对input节流:不断输入不断发请求 节流函数
function debounce(func,delay){
let timer;
return function(...args){
if(timer){
cleartimeor(timer)
timer=settimeout ()=>func.apply(this,args),delay
}
}
}
29.移动端Input框foucs键盘会显示 滚动时收起键盘 失去焦点blur()
30.trainstion-group tag=ul显示出什么标签 子元素必须有key :key 多元素同一标签过渡时没效果 也是用这种办法 指定不同的key
31.有公用的逻辑代码可以写入mixin
32.性能优化:对app进行一个瘦身:路由的懒加载 import()
const Foo = () => import('./Foo.vue')
33.vue版本跟vue-template-compliter要匹配一样的版本 否则编译的时候会报错
34.在移动端如何调试:vConsole
浙公网安备 33010602011771号