【Vue】Vue快速入门

Vue.js介绍

    Vue.js的作者为Evan You(尤雨溪),曾任职于Google Creative Lab。

    Vue文档:https://cn.vuejs.org

 Vue github:https://github.com/vuejs/vue

 Vue是前端主流框架中的集大成者,它吸取了angular,react的经验,支持各种模式写法,入门很简单,记录学习vue中的点点滴滴。

接下来我们来简单介绍一下Vue的生命周期

Vue实例的生命周期(图)

在beforeCreate和created钩子函数间的生命周期

在beforeCreate和created之间,进行数据观测(data observer) ,也就是在这个时候开始监控data中的数据变化了,同时初始化事件

生命周期我们就简单介绍到这如果需要详细可以去看看这篇文章

http://www.cnblogs.com/penghuwan/p/7192203.html

接下来我们开始简单使用Vue

html代码:

    <div id="app">
                {{ message }}
    </div>

js代码:

new Vue({
    el: '#app',
    data: {
    message: 'Hello Vue.js!'
    }
})

打印结果:

Hello Vue.js!

咱们分析一下上述代码,一句简单的{{message}},就把数据绑定到到了dom中,在当前的代码中创建Vue对象的时候,传递的参数{el:'#app',data:{message:'hello vue.js!'}},其中el是vue挂载的元素,也就是作用的范围,创建一个根作用域,data对象就是代理vue对象中数据和template的桥梁。

下面我们来看看vue双向数据绑定

html:

    <div id="root">
        <div :title="title">hello world</div>
        <input  v-model="content"/>
        <div>{{  content }}</div>
    </div>

js:

    <script>
        new Vue({
            el:"#root",
            data:{
                title:"this is hello world",
                content:"this is content",
            }
        })
    </script>

Vue是一个轻量级的框架,简单轻量的同时还非常的人性化,API也是非常容易理解,同时也提供了一些很便捷的指令和属性。

<div v-text="content"></div>

实现效果也就是给div的内容社会为 content

<div v-on:click="hanleClick" ></div>

可以简写为

<div @click="hanleClick" ></div>

实现效果也就是给div绑定一个click事件

<a v-bind:href="url"></a>

可以简写为

<a :href="url"></a>

实际就是给a标签绑定一个属性

列表渲染

1.语法v-for:通过v-for可遍历js对象集合,然后用可以直接输出每一项的数据。下面的代码直接用文本输出items的每项数据。

    html代码:

<ul id="app">
    <li v-for="item in items">
        {{ item.message }}
    </li>
</ul>

    js代码:

var app = new Vue({
    el: '#app',
    data: {
        items: [
            { message: '小明' },
            { message: '小王' }
        ]
    }
})

获取遍历项索引:使用v-for遍历有时候想得到每一项的索引值,可通过indexindex直接获取,index是vue直接提供的特性。我们也可以给索引取别名:

<div v-for="(item,index) in items">
    {{ index}} {{ item.message }}
</div>

接下来我们说说计算机属性与侦听器

html

    <div id="root"><input v-model="firstName" /><input v-model="lastName"/>

        <div>
            {{fullName}}
        </div>
        <div>
            {{count}}
        </div>
    </div>

js 

    <script>
        new Vue({
            el:"#root",
            data:{
                firstName:'',
                lastName:'',
                count:0,
            },
            computed:{
                fullName:function(){
                    return this.firstName+this.lastName;
                }
            },
            watch:{
                fullName:function(){
                    this.count++;
                }
            }
        })
    </script>

  computed:相当属性的一个实时计算,如果实时计算里关联了对象,那么当对象的某个值改变的时候,同事会出发实时计算,上面当我们的firstName或者lastName呗更改时它就会触发我们的computed的fullName从而更改了我们的fullName值

     watch:它用于观察Vue实例上的数据变动。对应一个对象,键是观察表达式,值是对应回调。值也可以是方法名,或者是对象,包含选项。上面当我们的fullName发生变化时,我们的watch就会触发fullName使count加1

总结

说起小巧,我们可以关注Vue的源码大小,Vue的成产版本(即min版)源码仅为72.9kb,官网称gzip压缩后只有25.11kb,相比Angular的144kb缩小了一半。

小巧的一种好处就是可以让用户更自由的选择相应的解决方案,在配合其他库方面它给了用户更大的空间。

本人第一次写文章,如果写的有错误的地方还请大家多多指教。

原文地址:https://www.cnblogs.com/xiaojian1/p/8903382.html