zoukankan      html  css  js  c++  java
  • vue 笔记

    <div id="root">
        <div>
            <input v-model="inputValue" />
            <button @click="onAdd">submit</button>
        </div>
        
        <ul>
            <todo-item
                v-for="(item, index) of list"
                :key="index"
                :content="item"
                :index="index"
                @delete="onDelete"
            ></todo-item>
        </ul>
    
    </div>
    
    
    <script src="https://cdn.jsdelivr.net/npm/vue"></script>
    <script type="text/javascript">
    
    Vue.component('todo-item', {
        props: ['content', 'index'],
        template: '<li>{{content}} <a href="javascript:;" @click="onClick">删除</a></li>',
        methods: {
          onClick: function(){
            this.$emit('delete', this.index)
          }  
        },
    });
    
    
    new Vue({
        el:"#root",
        data:{
            inputValue: '',
            list: [],
        },
    
        methods: {
            onAdd: function(){
                if(this.inputValue == '') return;
                this.list.push(this.inputValue);
                this.inputValue = '';
            },
            onDelete: function(index){
                this.list.splice(index, 1);
            },
        }
    })
    
    
    
    /*
    white-space: pre-line;
    
    var app = new Vue({
    
      el: '#id',
      
      //属性注入
      props: {
      },
      
      data: {
        message: 'Hello Vue!'
      },
      
      //方法
      methods: {
      
      },
      
      //计算属性
      //计算属性与方法的区别在于,它是基于它们的依赖进行缓存的,只在相关依赖发生改变时它们才会重新求值,性能更优。
      computed: {
    
        fullName: {
    
            get: function () {
              return this.firstName + ' ' + this.lastName
            },
    
            set: function (newValue) {
              var names = newValue.split(' ')
              this.firstName = names[0]
              this.lastName = names[names.length - 1]
            }
      }
      },
      
      //侦听属性
    
      watch: {
        firstName: function (val) {
          this.fullName = val + ' ' + this.lastName
        },
        lastName: function (val) {
          this.fullName = this.firstName + ' ' + val
        }
      }
      
    });
    
    Vue.component('demo-simple', {});
    
    绑定
    v-bind:title=""
    表单输入绑定
    v-model=""
    
    遍历
    v-for="(item, key, index) of items"
    v-for="(item, index) of items"
    v-for="item of items"
    
    绑定事件
    v-on:click=""
    
    v-if=""
    v-else-if=""
    v-else
    <template v-if=""></template>
    
    v-show=""
    
    vm.$data
    vm.$el
    $event
    
    vm.$watch('a', function(newVal, oldVal){});
    
    一次性
    <span v-once>{{ msg }}</span>
    
    以标准的 html 解析 
    v-html="html"
    
    .prevent 是修饰符,用于阻止浏览器默认行为
    v-on:submit.prevent="onSubmit"
    
    <div class="static" v-bind:class="{ active: isActive, danger: hasError }"></div>
    
    
    */
    
    </script>
  • 相关阅读:
    mysql非安装包安装教程
    HTML和CSS <h1> --3-- <h1>
    HTML和CSS <h1> --2-- <h1>
    HTML和CSS <h1> --1-- <h1>
    软件工程之四则运算总结
    图论算法 有图有代码 万字总结 向前辈致敬
    【万里征程——Windows App开发】使用Toast通知
    【万里征程——Windows App开发】设置共享(共享源和共享目标)
    【万里征程——Windows App开发】如何使用粘贴板
    【万里征程——Windows App开发】在应用中集成搜索
  • 原文地址:https://www.cnblogs.com/zbseoag/p/10045542.html
Copyright © 2011-2022 走看看