vue那些事~

1)技术栈:vue-cli webpack vue vue-router vuex fetch element-ui less sass

2)vue 文档简单看两边;

1: vue 双向绑定原理
2:生命周期
3:data 存储数据 creaated 组建渲染前;做一些初始化数据设置
4:methods 异步处理接口 事件操作等
5:mounted 组建渲染后多一些dom操作等
6:destroyed 做一些清除定时器操作等
7:父子组建通讯:
首 先: 写一个组件(也就是vue文件)
第二部: 在父组件中import导入;
第三部:把组建注册为局部组建 =》 components: { page },
第四部: 在父组件引入 <page :total="total" @callback="callback"></page>
total是data中传递给子组件的数据 @callback ='父组件中methods回掉函数'
第五部:在子组件中通过props接收父组件传递过来的数据或事件 props: ['total','callback']
callback在子组件中通过this.$emit('callback',data)触发;callback父组件传递过来的回掉函数;data是子组件传递给父组件的参数。
(要问兄弟组建通讯就说基本上不用 可以类似上边这种方式传递 通过父组件做中间桥梁间接出传递; 通常我们用vuex做状态管理,下边会详细说到,哈哈)

8:路由跳转方式有哪些
1:this.$router.push({
path: '/login', (路由名字)
query: { name: item }
})

2:<router-link :to="{ path: '/safety',query: {} }" tag="span">{{$t('safety')}}</router-link>

     注释:path:'跳转地址';
           query: { name: item } 传递的参数 通过this.$route.query.name获得

9: v-if v-show 区别
10:watch监听data数据变化进行相应操作
11:mixins混入就是提取一个组件中功能相似的(生命周期等。。。)

3)vue-router 处理:

    import Vue from 'vue'
    import Router from 'vue-router'
    import Login from '@/components/login.vue'(传统)
    const Login = r => require.ensure([], () => r(require('@components/login')), Login (现在优化写法;不问时,问你做过神马优化时候说吼吼)
    export default new Router({
         routes: [
          {
                   path: '/login',
                   redirect: Login 
               component: Login 
          },
        ]
    })   (注释:到处我们配置的路由在main.js引入)

4)vuex(状态管理工具(跟redux性质一样, 查下优势好处为什么用)

1:vuex里有几个属性 
    第一:stata 存储
    第二:mutation:同步处理数据
    第三:action: 异步处理
    第四:getter: 获取stata数据
译:所有数据都通过同步(mutation)进而该变state变化。也就是就是说action 我们可以风封装一些异步请求,通过dispatch触发action然后通过commit触发mutation;
    mutation进而改变state变化。
2)一些高级组件可以简化我们vue与vuex间的耦合(一跟红绳链接起来,快速沟通哈哈);
  有mapState 写在计算属性中 也就是取我们state中的数据
   import { mapActions, mapState } from 'vuex';
    computed: {
         ...mapState({
          otcList: (state) => state.OtcMain.otc_lists,
          busineChange: (state) => state.OtcMain.busineChange
        })
       },
      mapActions, 异步也就是我们action里封装的接口
   ...mapActions({
          getList: type.OTC_LISTS
       }),然后通过this.getList({传递的参数})调用我们的接口

5)fetch 接口封装 底层用的promise 成功失败后执行的函数 自己简单查下

6)less sass是css预处理器;简化开发 能嵌套,函数,变量等.....

================================================================================================================================

一) 优化难点啥的 如何处理分页: 手下吧分页插件注册为全局组件 一个vue 文件 ,

----------------------------------------------------
搭配一个js文件做vue组件的install 然后main.js引入js,然后通过 Vue.use(page)注册为全局组件
  import componentName from './elPagination.vue'
  export default {
   install: (Vue) => {
     Vue.component('page', componentName)
   }
  }
其次:这里用到父子组件通讯 回掉函数 ;因为回掉函数是功能一样的函数;所以我们通过mixins高级函数来统一处理

export const pageInit = {
       /*
        * @分页混淆mixins 分页初始化配置 和 回掉函数
        */
     data() {
       return {
         pageNum: '1',
         total: ''
      }
   },
  created () {
     this.pageInit();
  },
  methods: {
    callback(pageNum) {
       this.pageNum = pageNum;
       this.pageInit();
   }
 }

}

在一个就是上文提到的分包加载;


在一个就是因为需要第三方ui框架 vue.js;vue-router导致vendors文件过大影响响应速度 同过cdn加载文件包
配置webpack不打包相应文件
externals: {
'vue': 'Vue',
'vue-router': 'VueRouter',
'vuex': 'Vuex',
'element-ui': 'element-ui'
},


webpack里减少文件查找路径

alias: {
'vue$': 'vue/dist/vue.esm.js',
'@': resolve('src'),
'@components': resolve('src/components')
}


打包压缩js;css;精灵图等。。。。。。。。。。。。。。。。

附录图片说明

1)路由分包加载写法:

1531187988.png

2)mixins混入
1531188226(1).png

3)国际化和路由拦截

1531188291(1).png

4)接口封装,公共方法封装
1531188400(1).png

5)分页组件与mixins混入:

《分页子组件注册为全局组件》


1531188559(1).png
1531188587(1).png

作者:陈先生

时间:2018-7-10

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

推荐阅读更多精彩内容