• vuex自动获取当前的时间


    效果做成这样,我们要用vuex来自动获取当天的时间 然后添加到界面中去

    我们首先来讲讲vuex(在我看来vuex就是为了解决组件传值之间的问题,我们把这些公共的资源,集中放在一个地方来管理)

    vuex有五个属性,我们这里来介绍其中四个属性

    state就是用来存放数据的

    getter就说对state的数据做一次变化,有点像计算属性

    mutation:提交更新数据的方法,必须是同步的(如果需要异步使用action)。每个 mutation 都有一个字符串的 事件类型 (type) 和 一个 回调函数 (handler)。

       回调函数就是我们实际进行状态更改的地方,并且它会接受 state 作为第一个参数,提交载荷作为第二个参数(就是修改state数据用的)

    action:异步获取数据,然后再使用nutation,把数据放到state上

     1 import Vue from 'vue'
     2 import Vuex from 'vuex'
     3 import mutations from './mutation'
     4 import actions from './action'
     5 import getters from './getter'
     6 
     7 const state= {
     8     newdata: new Date(),10 }
    11 Vue.use(Vuex)
    12 
    13 //2.创建Store对象 
    14 const store = new Vuex.Store({
    15     
    16     state,
    17     mutations,
    18     actions,
    19     getters
    20  
    21  })
    22  //3.挂载Vue实例上
    23  export default store

    首先建立newdata来保存值

    然后在mutation中

    1 export default {
    2    addcount(state, payload) {
    3         state.newdata = payload
    4      }
    5 }

    这里就是给newdata重新赋值

    在action中

     1 export default{
     2     /**
     3      * @desc 异步获取时间 // 只能在这里写异步的ajax请求
     4      * @param {*} context // 第一个参数为实例对象
     5      * @param {*} param // 调用该方法传进来的参数 (比如请求分页就会传页码之类的参数)
     6      */
     7     getDate(context, param) {
     8         console.log('param:', param)
     9         let  _this;
    10         let mon;
    11         let day;
    12         let yy = new Date().getFullYear();
    13         let mm = new Date().getMonth() + 1;
    14         let dd = new Date().getDate();
    15         if(mm >= 10) {
    16             mon=mm
    17           }else {
    18             mon= "0" + mm 
    19           }
    20           if(dd >= 10) {
    21            day = dd;
    22           }else {
    23             day = "0" + dd;
    24           }
    25        _this= yy + "-" + mon + "-" + day;
    26         // 获取要改变state用的mutation方法名‘addcount’(是个字符串)
    27       context.commit('addcount', _this)
    28     },
    29     
    30 }

    这里就是获取当前时间,然后再通过调用mutation中的函数,将当前日期赋值到newdata中

    1 export default {
    2    cartList(state) {
    3        let aa = "00:00:00"
    4        return state.newdata + " " + aa
    5    },
    6 }

    在getter中获取newdata中的值,并对它进行一点修饰

    然后就是在我们的项目里面使用vuex

    首先我们需要引入

      import {mapGetters, /*mapState,*/ mapActions} from 'vuex'
    然后
     1 computed: {
     2            ...mapGetters({
     3              newdate:'cartList'
     4            }),
     5             // ...mapState({
     6             //   cc: state => state
     7             // })
     8            },
     9   onLoad() {
    10     // 执行vuex里面 action的方法 getDate函数
    11     this.getDate( )
    12   },
    13   methods: {
    14     ...mapActions(['getDate'])
    15   },

    最后渲染到界面

    {{newdata}}

  • 相关阅读:
    Java设计模式四: 原型模式(Prototype Pattern)
    Java设计模式六:观察者模式(Observer)
    Java设计模式九:状态模式(State)
    Windows 8 开发系列 自定义Gridview 绑定列表数据时出错
    Windows 8 开发系列如何修改系统样式
    Windows 8 开发系列全局资源App.xml的ContentFontsize会导致应用退出
    Windows 8 开发系列如何使状态栏不重复点击
    thinkpad E430 如何实现Fn键锁定或和功能键互换顺序
    Windows 8 开发系列应用挂起
    Windows 8 Metro 应用开发App Bar问题
  • 原文地址:https://www.cnblogs.com/cookie-bubble/p/13648352.html
Copyright © 2020-2023  润新知