vue基础知识

Vue.js被定义成一个用来开发web界面的前端库,是个很是轻量级的工具,自己具备响应式编程和组件化的特色,所谓响应式编程即为保持状态和视图的同步,是当下一个很火的Java Script MVVM库。MVVM的开发模式使前端从原先的DOM操做中解放出来,咱们再也不须要在维护视图和数据的统一上花大量的时间,只须要关注data的变化,代码变得更加容易维护。前端

Vue.js使用起来更为简单,无需引入太多的新概念,声明实例 new Vue({data:data})后天然对data里面的数据进行了视图上的绑定。修改data的数据,视图中对应数据也会随之更改。将DOM和数据绑定起来,一旦建立了绑定,DOM和数据保持同步,每当变动了数据,DOM也相应的更新。web

MVVM模式正则表达式

ViewModel.js是Vue.js的核心,它是一个Vue实例。当建立了ViewModel后,双向绑定是如何达成的呢?编程

首先,咱们将上图中的DOM Listener和Data Bindings看作两个工具,它们是实现双向绑定的关键,Dom Listener工具会帮咱们检测页面上DOM元素的变化,若是有变化,则更改Model中的数据。当咱们更新Model中的数据时,Data BIndigns工具会帮咱们更新页面中的DOM元素。app

使用Vue的过程就是定义MVVM各个组成部分的过程:函数

一、定义view工具

二、定义Model 组件化

三、建立一个实例或viewModel,用于链接View和Model。spa

在建立Vue实例时,须要传入一个选项对象,选项对象能够包含数据、模板、挂载元素、方法、生命周期钩子等等。选项中主要影响模板或DOM的选项有el,el的做用是为实例提供挂载元素。每个Vue.js实例须要有一个根元素。Vue.js实例中能够经过data属性定义数据,这些数据能够在实例对应的模板中进行绑定并使用,组件类型的实例能够经过props获取数据,同data同样,也须要在初始化时预设好,咱们也能够在组件类型实例中同时使用data,可是须要注意两个地方:一、data的值必须是一个函数,而且返回值不是原始对象,若是传给组件的data是一个原始对象的话,则在创建多个组件实例时它们就会共用这个data对象,修改其中一个组件实例的数据就会影响到其余组件实例的数据。二、data中的属性和props中的不能重复。双向绑定

数据绑定

一、文本插值

二、绑定表达式:每一个表达式只能包含单个表达式,并不支持JS语句,不支持正则表达式,若是须要进行复杂的转换,可使用过滤器或计算属性进行处理。

三、过滤器

表单控件:

一、Text

<div id="app">
  <p v-once="message">{{message}}</p>
  <input type="text" v-model="message">
</div>

new Vue({
  el:'#app',
  data:{
  message:'aaaaaa'
  }
});

二、Radio

<div id="app3">
        <label><input type="radio" value="male" v-model="gender">男</label>
        <label><input type="radio" value="female" v-model="gender">女</label>
        <span>gender:{{gender}}</span>
    </div>
new Vue({
            el:'#app3',
            data:{
                gender:''
            }
        });

三、Checkbox

div id="app2">
        <input type="checkbox" v-model="checked" v-bind:true-value="a"  v-bind:false-value="b" name="">
        <span>checked:{{checked}}</span>
    </div>
new Vue({
            el:'#app2',
            data:{
                checked:'',
                a:'a',
                b:'b'
            }
        });

四、Select

<div id="app5">
        <select v-model="selected">
            <option disabled>请选择</option>
            <option>A</option>
            <option>B</option>
            <option>C</option>
        </select>
        <span>Selected:{{selected}}</span>
    </div>
new Vue({
            el:'#app5',
            data:{
                selected:''
            }
        })

五、绑定value

<div id="app2">
        <input type="checkbox" v-model="checked" v-bind:true-value="a"  v-bind:false-value="b" name="">
        <span>checked:{{checked}}</span>
    </div>
new Vue({
            el:'#app2',
            data:{
                checked:'',
                a:'a',
                b:'b'
            }
        });

Class与Style绑定:

一、Class绑定

<div id="app7">
        <div class="tab" v-bind:class='{"active":active,"unactive":!active}'></div>
    </div>
new Vue({
            el:'#app7',
            data:{
                active:true
            }
        })

  <div id="app8">
    <div v-bind:class="[classA,classB]"></div>
  </div>  

  new Vue({
      el:'#app8',
      data:{
        classA:'class-a',
        classB:'class-b'
        }
      })

二、内联样式绑定

<div id="app9">
        <div v-bind:style="alterStyle">hello</div>
    </div>
new Vue({
            el:'#app9',
            data:{
                alterStyle:{
                    color:'red',
                    fontSize:'20px'
                }
            }
        })

Vue.js的经常使用指令: v-if,v-else,v-show,v-for,v-bind,v-on

相关文章
相关标签/搜索