美文网首页
vue.js初始

vue.js初始

作者: Axiba | 来源:发表于2016-11-27 01:43 被阅读51次

    vue.js不是一个框架,是一个提供MVVM风格,专注于UI层面的库。

    一、简单使用
    1

    #快速全局安装
    npm install -g vue-cli
    #快速构建一个基于webpack 这个模板的项目
    vue init webpack test-project
    
    #cd 进项目
    cd test-project
    #安装依赖 ,cnpm的是使用不清楚可以看我另一篇文章http://www.jianshu.com/p/470d073461a0
    cnpm install
    #跑起来
    npm run dev
    

    2、编辑器

    其实也没啥,因为用的是 atom, 所以需要安装一个 language-vue-component 插件支持Vue的语法高亮

    二、一个简单的demo

    textList.vue:

    <template>
      <div class="hello">
        <ul @click="dosomething">
          <li v-for="item in items" v-text="item.title" v-bind:class="{customClass: item.ishasClass}" v-on:click="rowClick(item)"></li>
        </ul>
        <componentInput paramHead="head_" v-on:triggerFrom="addRow"></componentInput>
      </div>
    </template>
    
    <script>
    
    import Util from './util.js'
    import componentInput from './input'
    
    export default {
      name: 'hello',
      data () {
        return {
          msg: 'Welcome to Your Vue.js Appeee',
          testmsg : 'zhengzelin',
          items: Util.getLocal()
        }
      },
      components: {
          componentInput
      },
      watch: {
          items: {
              handler: function(items) {
                  Util.save(items);
              },
              deep: true
          }
      },
      methods: {
         dosomething:function(e){
             console.log(e.target.tagName);
         },
         rowClick: function(item){
             item.ishasClass = !item.ishasClass;
         },
         addRow: function(newItem){
             this.items.push({
                 title: newItem,
                 ishasClass: false
             })
         }
      }
    
    }
    </script>
    
    <style scoped>
    
    li {
      display: inline-block;
      margin: 0 10px;
    }
    li:hover{
        cursor: pointer;
    }
    
    .customClass {
        text-decoration: line-through;
    }
    
    </style>
    
    

    util.js:

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

    input.vue:

    <template>
      <div class="hello">
        <input v-model="newItem" v-on:keyup.enter="addRow"></input>
      </div>
    </template>
    
    <script>
    
    export default {
        data () {
          return {
            newItem: ''
          }
        },
        props: ['paramHead'],
        methods: {
           addRow: function(){
               this.$emit('triggerFrom',this.paramHead+this.newItem);
               this.newItem = ''; //双向绑定,数据驱动UI
           }
        }
    
    }
    </script>
    
    

    相关文章

      网友评论

          本文标题:vue.js初始

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