Vuex和Vue-Router

vuex和vue-router是vue生态系统中的很重要的两个工具

vuex 是vue用来管理数据状态的一种机制,将Vue中所有的状态(数据)抽离出来进行统一管理,一般来说,如果不是大型单页项目,像SPA这些,也是不会去使用vuex的,毕竟vue是一个轻量级的框架,启动快是它的特点,所以vue的优化就有很大的一点是尽可能的减少依赖数量,达到优化加载速度。

        首先就是引入vuex,一种是直接引入vuex.js的文件,以script标签引入,另一种是利用npm install -g --dev全局安装开发时依赖,安装完依赖之后就是引入vuex模块,

import Vuex from "vuex"

import Vue from "vue"

之后通过显示的调用vuex

Vue.use(Vuex)

创建实例store

    const  store  = new Vuex.store({

        state:{},

        getters:{}.

        mutatios:{},

        actions:{}

}),

我们还要在vue实例中去引入,注入store

        new  Vue({

        store:store

})

vuex属性:state :{}存放数据的集合;getters:{},通过对state里面数据的操作,进而改变数据的状态,一般会使用数组迭代方法map(),filter()等,功能类似于vue实例中的computed计算属性,但他还有一个重要作用,在后面映射到vue实例的时候,这个后面再讲。

        mutations:{}这个集合可以直接操作state里面的内容,可直接对state的数据状体进行操作,重要的是,在该集合内只能进行同步操作,不允许异步操作,也就是说,在mutations里面不能进行ajax或asnyc和await等操作,要进行这些操作我们在Actions:{}里面。这里会传入一个参数state(作为第一个参数,所以亦可以传入其他的参数,称为载荷Payload),就是上面的state集合,从这里对state数据进行操作


        Actions:{} 作用有点类似vue实例的methods:{},存放各种方法的地方,唯有这里才能够进行异步操作,但是这个集合不能直接对state里的数据进行改变。这里操作改变的是对象是mutations里的数据,这里使用的方法会自动引入一个参数context,通过context.commit("")来对数据的操作(唤醒mutations的handler),该context对象具有和store实例的相同的方法和属性,或者也可以使用context.state()或context.getters(),有时候我们也想使用actions里面的其他方法,我们就用context.dispatch("其他方法名") 进行触发,之所以这么做,是因为actions可以异步执行,而mutations只能同步。

        将vuex实例中actions的映射到methods:



        将vuex实例中的mutations的映射到computed(可映射多个):

        computed:{

            ...Vuex.mapMutations(["methods1","methods2"])

}

        改变突变mutations,使用commit("mehtods");

当项目越写也大的时候,一个store实例已经不够用了,这时候就有一种module机制,将一个个store实例分成一个个模块,然后将其暴露出来,

这时候vue实例里注入vuex就不那么写了(注入之前要将module暴露export default,否则无效)

         new  Vue({

        module:{

        storeA:storeA,

         storeB:storeB,

         storeC:storeC

            }

        });

Vue-Router   vue的路由机制

大型单页面的应用,当我们要跳转到另一个不同的页面时,使用a标签跳转是行不通的,只能使用路由,vue提供了一套完整的路由机制,以适应各种复杂的跳转情况。

        引入vue-router:

        npm install vue-router

        创建实例

            const router = new VueRouter({

routes:[{

    component:"component",

    path:"path",

        children:[{

        component:"myRouter",

        path:"/childrenpath"

}]

}]

});

目标路由的写法:

var myRouter = {

    template:"<div></div>"

},

将路由注入到vue实例中:

new Vue({

    el:“#app”,

        router:router

});

这样一个简单的路由实例就完成了,

接下就是路由的渲染:

<router-view></router-view>  将这段代码放在你需要加载路由的地方,路由就会完成渲染。


除此之外你还需要写一段a标签,将routes里的path放到a标签的href属性里,并在path之前加#/

或者直接写<router-link to="path">路由</router-link>  用于路径导航,实现路由的注入。

二级路由:

          <router-link to="path/path">二级路由<router-link>

            同时将routes对象里的children子路由路径path设为你的二级路由的路径地址

渲染方式

将<view-router></view-router>插入一级路由的模板template下

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

推荐阅读更多精彩内容