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>
复制代码

 

posted @   心随所遇  阅读(180)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示