• vue 结合localStorage 来双向绑定数据


    结合localStorage 来双向绑定数据(超级神奇)

    localStorage.js: 

    const STORAGE_KEY = 'todos_vuejs'
    export default {
      fetch () {
        return JSON.parse(window.localStorage.getItem(STORAGE_KEY) || '[]')
      },
      save (items) {
        window.localStorage.setItem(STORAGE_KEY, JSON.stringify(items))
      }
    }

    App.vue

    打开Chrome浏览器控制台找到"Application - Storage - Local Storage",观察变化

    <template>
      <div id="app">
         <h1>{{title}}</h1> <!-- <h1 v-text='title'></h1> -->
         <input type="text" v-model='newItem' @keyup.enter='addItem'>
         <ul>
           <li v-for='item in items' v-bind:class="{finished: item.isFinished}" v-on:click='toggleFinish(item)'>
             {{item.label}}
           </li>
         </ul>
      </div>
    </template>
    
    <script>
    import Storage from './localStorage.js'
    console.log(Storage)
    export default {
      data () {
        return {
          title: 'Hello World!',
          items: Storage.fetch(),
          newItem: ''
        }
      },
      methods: {
        toggleFinish (item) {
          item.isFinished = !item.isFinished
        },
        addItem () {
          console.log(this.newItem)
          this.items.push({
            label: this.newItem,
            isFinished: false
          })
          this.newItem = ''
        }
      },
      watch: {
        items: {
          handler (items) {
            Storage.save(items)
          },
          deep: true
        }
      }
    }
    </script>
    
    <style>
    .finished{text-decoration: underline;}
    html {height: 100%; }
    body {display: flex; align-items: center; justify-content: center; height: 100%; }
    #app {color: #2c3e50; margin-top: -100px; max-width: 600px; font-family: Source Sans Pro, Helvetica, sans-serif; text-align: center; }
    #app a {color: #42b983; text-decoration: none; }
    .logo {width: 100px; height: 100px }
    </style>

  • 相关阅读:
    第二节:如何正确使用WebApi和使用过程中的一些坑
    nodejs中function*、yield和Promise的示例
    关于nodejs访问mysql的思考
    nodejs使用log4js记录日志
    nodejs初识
    Spring学习笔记(入门)
    mybatis使用注解开发
    MyBatis配置文件中的常用配置
    using 自动释放资源示例
    Java将byte[]和int的互相转换
  • 原文地址:https://www.cnblogs.com/CyLee/p/8425122.html
Copyright © 2020-2023  润新知