1 Star 0 Fork 0

tinajs / tina-immutable

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
readme.md 2.50 KB
一键复制 编辑 原始数据 按行查看 历史
yelo 提交于 2018-01-26 20:27 . docs: add example with redux

tina-immutable

Immutable data for Tina.js

npm license PRs Welcome

Setup

  1. Download package from npm
# ensure immutable is installed
npm i -save immutable@^4.0.0-rc.9

# install tina-immutable
npm i --save @tinajs/tina-immutable
  1. Install into Tina
// app.js
import Tina from '@tinajs/tina'
import ImmutablePlugin from '@tinajs/tina-immutable'

Tina.use(ImmutablePlugin)

Usage

// pages/some-page.js
import { Page } from '@tinajs/tina'
import { fromJS, Map } from 'immutable'

Page.define({
  data: {
    // The default values of data could be Immutable-Objects,
    books: fromJS([
      { id: 1, title: 'Black Beauty' },
      { id: 2, title: '20,000 Leagues Under the Sea' },
    ]),
    // or just any plain types.
    messages: [{
      { id: 1, content: 'I thought you might sway closer each day' },
      { id: 2, content: 'All I wish I could say but you shy away.' },
    }],
    isLoading: false,
    title: 'Favorites',
  },

  methods: {
    more () {
      let messages = this.data.get('messages')
      this.setData({
        messages: this.data.get('messages').push(new Map({
          id: 3,
          content: 'Our eyes engage but I can\'t see who\'s nearer.',
        }))
      })
    },
  },
})
// components/like.js
import { Component } from '@tinajs/tina'
import { fromJS, Map } from 'immutable'

Component.define({
  properties: {
    // Limited by the offical Mina framkework, properties only accepts [plain types](https://mp.weixin.qq.com/debug/wxadoc/dev/framework/custom-component/component.html).
    // However, our tina-immutable plugin will transform the values of all properties to Immutable, before they are merged into ``this.data``.
    item: Object,
  },
  data: {
    like: true,
  },

  methods: {
    toggle () {
      // You can use the properties as Immutable by accessing ``this.data``.
      this.triggerEvent('toggle', { item: this.data.get('item') })
    },
  },
})

Example

License

MIT © yelo, 2017 - present

JavaScript
1
https://gitee.com/tinajs/tina-immutable.git
git@gitee.com:tinajs/tina-immutable.git
tinajs
tina-immutable
tina-immutable
master

搜索帮助