vue数据层思路_用于vue.js的数据model层插件

vue-twig

用于vue.js的数据mvc的model层插件,区别于单项数据流的另一种体验, 属于mvc思想的优化,个人这么理解 同时提供localStorage,sessionStorage本地存储功能

demo

install

npm install vue-twig --save

usage

//初始化

import Vue from 'vue'

import twig from 'vue-twig'

import co from 'co' //运行Generator函数需要,不需要则不引入

import app from './app'

var model = {

key: "model名",

saveType: twig.saveType.localStorage,//存储类型.localStorage/sessionStorage

dataFun: function (data) {//可以是普通函数,Generator函数(需要co模块),async函数

//data:缓存的数据

//生成初始化数据

return data;//返回初始化的数据

}

}

Vue.use(twig, model, [co])//co为可选参数

//或

Vue.use(twig, [model1,model2,moel3 ...],[co])

//数据初始化成功后创建应用实例

twig.ready(function () {

window._App = new Vue({

el: '#container',

components: {

app

},

render (h) {

return (

)

}

})

})

//组件接入子model

//app.js

export default {

name: 'app',

data: function () {

//接入twig,可选择性接入

var twigs= this.$twigWarp({

session: this.$twig.session,

storage: this.$twig.storage,

dataTree: this.$twig.dataTree

})

//私有data

var privates={

a:1,

b:2

}

return Object.assign(twigs,privates)

},

//只读型接入介,

computed: {

formA: function () {

return this.$twig.session.form.a

}

},

...

}

warning

1:twig的接入具有非常大的灵活性,随意操作也会带来问题,像redux也是有『数据操作强约束』的,不能改变 store的数据结构,twig同样如此;

2:data中接入的twig数据要求是对象(索引类型),接入值类型不能触发深入式响应,当然计算属性可以接入值类型;

3:被接入的twig根节点强制不允许被赋值操作;

描述

twig并不是一个"开发便利性","性能"都超越vuex或其它流程插件的这样一个定位东西. twig是在mvc的开发思想上,做了进一步模块功能的开发细分:以此达到优化开发流程的目的. 提供一种异于『绝对的单项数据流』的新的开发思维卡供选择

大致思想如下:

应用总的数据由twig管理,根据功能分成不同的model;

web应用根据功能和视图划分为不同的组件(component),接入对应的model,形成映射关系. 在单个组件中,只关心组建内model的数据;

组件的view由model数据驱动,对组件内model的操作,就是对twig中model的操作;

单个组建内部,使用什么样的数据操作流程都没有关系;

数据接入 接入简化 深入分解

固有的mvc因为在复杂页业务场景不好管理model与view之间的关系,twig将程序整体划分为一个一个小的相对独立的子mvc,这样一定程度的解决了 原有mvc模式的复杂性,又保留了model与view的直接联系.

这里借鉴了angular.js的rootScope的思想.只是我们每个组件(component/controller)只接触和自己相关的数据;

基于vue深入式相应的特性,组件对model的修改,可触发所有接入该model的组件view的更新;

程序的设计应以model数据结构为准则, 组件(component)不得修改model的数据结构(flex,redux 亦然),

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值