Vue第二节

2017-07-09  本文已影响0人  chengfengwang

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端口等)

上一篇 下一篇

猜你喜欢

热点阅读