备忘录

  • 页面自己调用自己时的方法
watch: {
  $route(val) {
    if (val.query.bookid) {
       this.init() // 自己调用自己,重新初始化
       this.$refs.scroll.scrollTo(0, 0, 0)
    }
  }
},

 // 离开路由钩子
    beforeRouteLeave(to, from, next) {
      // 在这里可以询问用户是否离开当前页面 是就 next()

      next() // 调用next() 路由就会跳转
    },
    // 重复调用组件的钩子
    beforeRouteUpdate(to, from, next) {
      next()
    },
  • mounted() 钩子执行的内容依赖 computed计算属性时 延迟20ms执行
setTimeout(() => {
  // 内容...
}, 20)
  • vue 生命周期
1、beforeCreate
在实例初始化之后,数据观测和event/watcher时间配置之前被调用

2. created
实例已经创建完成之后被调用。在这一步,实例已经完成以下的配置:数据观测,属性和方法的运算,watch/event事件回调。然而,挂载阶段还没开始,$el属性目前不可见。
(不需要set 的属性可在这里定义)

3、beforeMount
在挂载开始之前被调用:相关的render函数首次被调用。
该钩子在服务器端渲染期间不被调用。

4、mounted
可以使用ref定义的钩子
该钩子在服务端渲染期间不被调用。
(用于请求数据)

5、beforeUpdate
数据更新时调用,发生在虚拟DOM重新渲染和打补丁之前。
你可以在这个钩子中进一步第更改状态,这不会触发附加的重渲染过程。
该钩子在服务端渲染期间不被调用。

6、updated
由于数据更改导致的虚拟DOM重新渲染和打补丁,在这之后会调用该钩子。
当这个钩子被调用时,组件DOM已经更新,所以你现在可以执行依赖于DOM的操作。然而在大多数情况下,你应该避免在此期间更改状态,因为这可能会导致更新无限循环。
该钩子在服务端渲染期间不被调用。

7、activated
keep-alive组件激活时调用
该钩子在服务器端渲染期间不被调用。
(如导航条可以滚动,那么可在该周期设置导航条位置)

8、deactivated
keep-alive组件停用时调用。
该钩子在服务端渲染期间不被调用。

9、beforeDestroy 
【类似于React生命周期的componentWillUnmount】
实例销毁之间调用。在这一步,实例仍然完全可用。
该钩子在服务端渲染期间不被调用。

10、destroyed
Vue实例销毁后调用。调用后,Vue实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。
该钩子在服务端渲染不会被调用。
  • <router-view/>
// keep-alive缓存组件 有2个属性
// include="name"   缓存所有name=name的组件
// exclude="name"  除了name 其他都缓存
<keep-alive exclude='detail'>
    <router-view class='child-view'></router-view>
</keep-alive>

使用include/exclude 属性需要给所有vue类的name赋值
(注意不是给route的name赋值   不生效)
是组件里的name
  • 移动web 性能优化

    1. 要减少对DOM的操作
    2. 尽量缓存可以缓存的数据
    3. 尽量使用transform 动画 代替DOM操作
    4. 不要给非statice定位元素加css3动画,(如absolute、relative),原因:会成倍增加性能开销
    5. 适当使用硬件加速(使用canvas、或添加transform: translate3d(0,0,0)会触发硬件加速)
  • window.performance.timing

页面加载速度 的时间戳
  • props 里 设置数组默认值时 要这样
 props: {
      searches: {
        type: Array,
        default: () => []
      }
    },
  • Unable to preventDefault inside passive event listener due to target being treated as passive.
*            //css里加上这个 即可没有警告提示
  touch-action: none  
  • vue data() {} 里定义的属性有get、set
    reated() {} 里定义的属性只有get

  • 新版vue-cli中使用dev-server代理的方法

在webpack.dev.config.js中
// 1.引包
const axios = require('axios');
const express = require('express');
const apiRoutes = express.Router();

// 2.配置
const devWebpackConfig = merge(baseWebpackConfig, {
module: {
rules: utils.styleLoaders({sourceMap: config.dev.cssSourceMap, usePostCSS: true})
},
// cheap-module-eval-source-map is faster for development
devtool: config.dev.devtool,
// these devServer options should be customized in      /config/index.js
devServer:{
//在这里添加一个before方法  上面的都是自带的
before(apiRoutes){
  apiRoutes.get('/api/getDiscList',(req,res)=>{
    const url = '这里是要链接的api地址';
    axios.get(url, {
      headers: {
        referer: '配置api地址referer',
        host: '配置api地址host'
      },
      params: req.query  //这是请求的query 
    }).then((response) => {
    //response是api地址返回的,数据在data里。
      res.json(response.data)
    }).catch((e) => {
      console.log(e);
    })
  });
  // app.use('/api', apiRoutes);
 }
}
  • this.$nextTick()

在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM。

  1. created()钩子函数执行DOM操作要放在nextTick()里,因为 created时DOM 其实并未进行任何渲染
  2. 在数据变化后要执行的某个操作,而这个操作需要使用随数据改变而改变的DOM结构的时候,这个操作都应该放进Vue.nextTick()的回调函数中。意思是在$nextTick里的操作,会等待vue根据数据变化更新完DOM后再执行.
  • 使用rem自适应布局时,如果要操作DOM,和获取元素width、height,那么被操作的元素width、height属性必须是整数如3rem

  • 获取dom元素相对于页面位置属性dom.

// 属性用x, y, right, left, bottom, top, width, height
dom.getBoundingClientRect()
// vue
this.$refs.元素.getBoundingClientRect()

// dom.offsetTop 相对于父元素的top值
  • 获取触摸元素的位置属性e.touches[0]


  • 自适应rem要放在app的created()里面 页面才不会闪屏

created() {
 let html = document.getElementsByTagName('html')[0]
 setHTMLSize()
 window.onresize = () => setHTMLSize()
 function setHTMLSize () {
  let width = window.innerWidth || document.body.clientWidth
  if (width > 640) {
    width = 640
  }
  html.style.fontSize = width / 160 * 4.4 + `px`
 }
}
  • sass引入字体文件url不能换行
@font-face
  font-family: 'music-icon'
  src: url('../fonts/music-icon.eot?2qevqt')
  src: url('../fonts/music-icon.eot?2qevqt#iefix') format('embedded-opentype'),url('../fonts/music-icon.ttf?2qevqt') format('truetype'),url('../fonts/music-icon.woff?2qevqt') format('woff'),url('../fonts/music-icon.svg?2qevqt#music-icon') format('svg')
  • 路由选中页面自动加.router-link-active

  • 可以在根目录package.json安装的需要库

//添加库名: 版本 然后cnpm install安装
"dependencies": {
    "babel-runtime": "^6.0.0", // 转义ES6语法
    "vue": "^2.5.2",
    "vue-router": "^3.0.1",
    "fastclick": "^1.0.6",  // 点击无300ms延迟
    "jsonp": "^0.2.1"  // jsonp跨域
  },
  • 对url进行编码encodeURIComponent(val)
  • Object.assign 合并对象

Object.assign(target,... sources)
目标对象、源对象
将所有可枚举属性的值从一个或多个源对象复制到目标对象。后面的值会覆盖前面相同的值,
它会返回目标对象。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容