美文网首页
MVC交互模式

MVC交互模式

作者: zhangwinwin | 来源:发表于2018-11-26 10:20 被阅读0次

其基本思路是将DOM交互的内容分为数据模式、视图和事件控制函数三个部分,并对它们进行统一管理。

Model用来存放请求的数据结果和数据对象,
VIew用于页面DOM的更新与修改,
Controller则用于根据前端路由条件来调用不同Model给View渲染不同的数据内容。

常用的页面路由的实现也很简单,其主要思路是让URL地址内容匹配对应的字符串然后进行相应的操作。

const router = {
    get(match, fn) {
        let url = location.href
        let routeReg = new RegExp (match, 'g')
        if(routeReg.test(url)){
            fn()
        }
        return this
    }
}

router.get('#index', function(){
    _loadIndex(); //注册hash含有#index的路由执行对应的操作
}).get('#detail', function(){
    _loadDetail()
})

也可以使用HTML5的pushState来实现路由。history.pushState(state, title, url)方法可以改变当前页面的url而不发生跳转,并将不同的state数据和对应的url对应起来。

history.pushState({page: "A"}, 'page A', 'a.html')
console.log(history.state);// {page: 'A'} 对象

使用路由后,将SPA中的每个路由或用户操作加载的页面内容都看成是一个组件。所有的组件数据请求、渲染、页面逻辑操作都分别用Model、View、Controller来注册调用。
例如其中一个组件A

<div id="A" onclick="Controller.A.event.change"></div>

let component = new Component()
ler A = component.extend({
    $el: document.getElementById('A'),
    model: {
        text: 'ViewA渲染成功'
    },
    view: {
        let tpl = '<input id='input' type='text' value='{{text}}'><span id="showText">{{text}}</span>'
        //调用模板渲染数据获取HTML片段
        let html = render(tpl, data)
        this.$el.innerHtml = html
    },
    controller(){
        let self = this
        //调用model数据传入view中的渲染内容
        self.view(self.model)
        //用户操作一般通过hash来触发Controller改变Modle和View
        $('window').on('hashChange', function(){
            self.model.text = location.href
            self.view(self.model)
        })
    }
})

相关文章

  • MVC交互模式

    其基本思路是将DOM交互的内容分为数据模式、视图和事件控制函数三个部分,并对它们进行统一管理。 Model用来存放...

  • 现代前端交互框架

    MVC模式 MVP模式 MVVM模式 数据变更监测机制 Virtual DOM交互模式 前端MNV*时代 前端 M...

  • MVT pattern Django

    MVC 传统的MVC模式指的是model,view,controller model是用来和数据库交互,存取数据的...

  • MVP+Retrofit+dagger2+RxAndroid框架

    MVP模式:主要实在传统的MVC模式上新增了一层presenter,作为View与Model交互的中间纽带,处理与...

  • 2.熟练掌握MVC.单例.观察者.代理.工厂等设计模式

    2.1MVC 模式 指的是:模型-视图​-控制 对于界面设计可变性的需求,MVC把交互系统的组成部分分解成模型,视...

  • 前端MVC、MVVM的简单实现

    MVC MVC是一种设计模式,它将应用划分为3个部分:数据(模型)、展示层(视图)和用户交互层。结合一下下图,更能...

  • 理解JavaScript MVC 框架

    Model–View–Controller (MVC)是一种把信息展现逻辑和用户交互分离的计算机用户界面开发模式;...

  • APP重构之路 Model的设计

    APP重构之路 网络请求框架 APP重构之路 Model的设计 前言 很多的app使用MVC设计模式来将“用户交互...

  • JavaWeb入门——MVC

    1.MVC设计模式 1.1MVC模式 1.2MVC模式示例 index.jsp WelcomeServlet.ja...

  • MVC架构

    什么是MVC开发模式? 将程序分层,分别为Model层(负责数据管理,获取),View层(负责交互界面),Cont...

网友评论

      本文标题:MVC交互模式

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