MVC思想

作者: 郑馋师 | 来源:发表于2020-02-23 23:33 被阅读0次

2020.3.3
后续更新
在后续操作中,我们建立了一个store来管理所有的要用到的操作,包括对于Tag的操作和数据的操作Record,再进一步的封装目的是为了减少后续开发者要考虑的问题,他们不需要考虑从哪里引入,因为都是从store里面引入就好

import recordStore from '@/store/recordStore';
import tagStore from '@/store/tagStore';

const store = {
  //record store
  ...recordStore,
//Tag store
  ...tagStore
};
export default store;

同时把store里面封装的api名字更正的更加贴合其操作本身,增加代码可读性
例如把tagListModel里面的save改成了saveTag,这样就知道是对谁进行操作,同时把
tagListModel改成了tagStore,更加贴切


在做项目的时候,我发现如果不用mvc思想而是把东西堆在一起写,会导致组件很臃肿
所以我选择在文件中创建一个model封装有关于数据的操作,然后引入这个model,会使得整个组件舒服多了
以我做的为例子

//tagListModel.ts

const localStorageKeyName = 'tagList';
type TagListModel= {
  data: string[]
  fetch: () => string[]
  create: (name: string) => string
save:()=>void
}
const tagListModel = {
  data:[],
  create(name:string){
    const x=this.data as string[]
    if(x.indexOf(name)>=0){return 'duplicated'}
    x.push(name)
    this.save()
    return 'success'
  },
  fetch() {
    return JSON.parse(window.localStorage.getItem(localStorageKeyName) || '[]') ;
  },
  save() {
    window.localStorage.setItem(localStorageKeyName, JSON.stringify(this.data));
  },
};
export default tagListModel;

我把label中要用的关于数据的操作放在这
所以我的label组件就可以直接调用很方便

//label.vue

<script lang="ts">
import Vue from "vue";
import tagListModel from '@/model/tagListModel';
import {Component} from 'vue-property-decorator';
tagListModel.fetch()
@Component

export default class Labels extends Vue{
  tags=tagListModel.data

  goBack(){}
  createTag(){
    const name=window.prompt('请输入标签名')
    if(name){
     const message=tagListModel.create(name)
      if(message==='duplicated'){
        window.alert('重复')
      }
    }
  }

};
</script>

所以以后要记得养成封装的好习惯

相关文章

  • MVC思想

    理解javascript中的MVC MVC模式是软件工程中一种软件架构模式,一般把软件模式分为三部分,模型(Mod...

  • MVC思想

    MVC是一种设计思想,贯穿于整个iOS开发中,需要积累一定的项目经验,才能深刻体会其中的含义和好处 ==MVC...

  • MVC思想

    2020.3.3后续更新在后续操作中,我们建立了一个store来管理所有的要用到的操作,包括对于Tag的操作和数据...

  • 从MVC到MVVM

    MVC思想写代码 MVVM思想改写代码

  • DAY07-Sping04

    一、Spring Web框架 MVC思想 Spring MVC Servlet:Web 服务的模块,包含对 MVC...

  • PHP常用的显示与逻辑分离思想

    显示与逻辑相分离思想 mvc思想原理 PDO

  • MVC 设计思想

    是一种软件架构的思想,将一个软件按照模型、视图、控制器进行划分。 (1)模型:业务逻辑,包含了业务数据的加工与处理...

  • 关于架构思想的看法

    目前开发中用到的主流思想主要是MVC 、 MVP、 MVVM这三种思想。前端用的MVVM,后端用的MVC,安卓用...

  • 11 - 使用mvc处理对应的路由

    使用分层思想的优点:提高扩展性 最基本的分层思想是:MVC设计模式 使用mvc处理对应的路由将.ejs文件放在vi...

  • Servlet开发基础

    2019-05-18 MVC开发思想 MVC(Model-View-Controller) 把一个应用的输入、处理...

网友评论

      本文标题:MVC思想

      本文链接:https://www.haomeiwen.com/subject/xxaeqhtx.html