Vue第二节

vue实例

每个 Vue 实例都会代理其 data 对象里所有的属性:

<script type="text/javascript">
        var vm= new Vue({
            el : "#box",
            data : {
                a : 999,
                data : 666
            }
        });

        // alert(vm.a);     //999
        // alert(vm.$data.a);       //999
        // alert(vm.data);      //666
        // alert(vm.$data.data);        //666
        // alert(vm.$el === document.getElementById("box"));
        //data.a = 3
        //vm.a  -> 3

    //监听a的值,一旦改变,就执行回调函数
        vm.$watch("a",function(newvalue,oldvalue){
            console.log(newvalue,oldvalue)
        });
    </script>

生命周期

链接
beforeCreate created(观察数据,初始化事件)
beforeMount mounted(把实例挂载到元素上)
beforeUpdate updated(数据发生更新)
beforeDestory destoryed

vue 选项卡

每个tab头有自己的身份值,每个tab内容有自己的身份值,tab头和tab内容的身份值会有对应的关系
给tab头绑定事件,事件用来修改总身份值,把该tab头的身份值作为参数传给事件
在tab头绑定class,当自己的身份值和总身份值相等时,class生效
在tab内容区绑定v-show,当自己的身份值和总身份值相等时,该栏内容显示
链接

删除循环中的一项

在循环项中绑定事件,把循环的index作为参数传入事件,
在事件中用数组的splice(index,1)删除index对应的循环数组项
<ul>
    <li v-for="item in list">{{item}} <input type="button" value="删除" v-on:click="shanchu($index)"></li>
</ul>

"shanchu" : function(index){
    this.list.splice(index,1); //使用数组的splice方法
}

渲染多个元素块

如同 v-if 模板,把v-for绑定到template上,v-show不能写在template上

<ul>
<template v-for="item in items">
<li>{{ item.msg }}</li>
<li class="divider"></li>
</template>
</ul>

v-for迭代对象

<div v-for="(value, key, index) in object">
  {{ index }}. {{ key }} : {{ value }}
</div>

使用原生事件

只需要在定义事件函数中,把event作为参数传入即可

<div id="example-2">
  <button v-on:click.stop="greet">Greet</button> //v-on:click.stop阻止事件冒泡
</div>

var example2 = new Vue({
  el: '#example-2',
  data: {
    name: 'Vue.js'
  },
  methods: {
    greet: function (event) {
      // `this` 在方法里指当前 Vue 实例
      alert('Hello ' + this.name + '!')
      // `event` 是原生 DOM 事件
      if (event) {
        alert(event.target.tagName)
      }
    }
  }
})
// 也可以用 JavaScript 直接调用方法
example2.greet() // -> 'Hello Vue.js!'

一个单文件组件怎么写

<template>
    <div></div>   //必须要有一个根元素
</template>
<style>

</style>
<script>
    export default{    //使用es6导出模块
         data:function(){
              return {
                  msg:'msg'    //组件的data必须在函数的返回对象里
              }
          }
    }
</script>

单文件组件

components:{
    NavHeader     //是 NavHeader :  NavHeader  的缩写
}

vue cli下的webpack配置

config 下的index.js 和 build 下的webpack.base.conf.js 是比较常用到的webpack配置文件 (可以配置dev端口等)

推荐阅读更多精彩内容

  • 前言 webpack2和vue2已经不是新鲜东西了,满大街的文章在讲解webpack和vue,但是很多内容写的不是...
    技术宅小青年阅读 5,148评论 11 45
  • 前几日听到一句生猛与激励并存,可怕与尴尬同在,最无奈也无解的话:“90后,你的中年危机已经杀到”。这令我很受触动。...
    晚晴幽草阅读 9,418评论 23 175
  • 离6月份结束还有一个小时,回顾此间发生的种种,喜忧参半.我重拾了勇气和奋斗,我又唤回了百折不挠的精神,时刻保持积极...
    快雪時晴霽無瑕阅读 66评论 0 2
  • 今天有一个觉察。老公今天和明天同学聚会,我又要带娃又要守店,心里非常不爽,并且他也没有把家里的事情做好才走。晚上我...
    曾萍萍阅读 31评论 0 0
  • 夜幕慢慢降临了,大强作为诺大城市中的一员,缓缓地骑上了自己的三轮车,载着一整车的烤具、液化气、食材,和其他成千上万...
    更好时代阅读 16评论 0 0