Menu Close

Vue快速入门

<!-- 缩写 -->
...### 最近想搞一些微信小程序,顺便了解一下Vue。15年看过一点angular,一直没有实践的时候,这次用国人学的框架试试手。
学习新事物的三个单词 W(why)W(whar)H(how),就从这三个单词入手

WHY:

VUE是一种MVVM架构,我们在改变数据的时候不需要再去操作DOM,而是直接改变数据即可,Angular等都支持这种方式。
而且它还是国产,方便我们去学习。

WHAT:

Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。

How:

因为是国人开发,文档更加友好,可以从官网入门。

下面做一些学习记录,记录一下学习过程。

渲染DOM数据

<div id='app'>
    <p>{{msg}}</p>
</div>
 var  app = new Vue({
        el:'#app',
        data:{
            msg:'hello Vue.js By Liuser'
        }
    });
此处dom中ID与VUE进行绑定,在data数据发生改变的时候,dom中的数据会相应的进行改变

绑定元素(属性)

绑定元素与绑定DOM不同,使用一个指令v-bind。

指令带有前缀 v-,以表示它们是 Vue 提供的特殊特性,它们会在渲染的 DOM 上应用特殊的响应式行为。在这里,该指令的意思是:“将这个元素节点的 title 特性和 Vue 实例的 message 属性保持一致”。


<!-- 缩写 -->
#这里也可以使用缩写形式  <span :title="message">
<div id="app-2">
    <span v-bind:title="message">
          鼠标悬停几秒钟查看此处动态绑定的提示信息!
    </span>
</div>
 var app2 = new Vue({
       el:'#app-2',
       data:{
           message:'页面加载于' +new Date().toLocaleString()
       }
   })

条件与循环

条件语句使用v-if

<div id="app-3">
    <p v-if="flag">显示</p>
</div>
]
    var app3 = new Vue({
        el: '#app-3',
        data: {
            flag: true
        }
    })
这时,默认为显示,如果使用控制台手动修改app3.flag=false,则会隐藏

循环语句使用v-for

<div id="app-4">
    <ui>
        <li v-for="item in list">
            {{item.text}}
        </li>
    </ui>
</div>
var app4 = new Vue({
    el: '#app-4',
    data:{
        list:[
            {text:'javascript'},
            {text:'java'},
            {text:'php'},
            {text:'c'},
            {text:'c++'},
        ]
    }
});
在控制台里,输入 app4.list.push({ text: '新项目' }),你会发现列表最后添加了一个新项目。

交互

使用v-on添加事件


#这里也可以使用缩写
 <button @click="reverseMessage">逆转消息</button>
<div id="app-5">
    <p>{{ message }}</p>
    <button v-on:click="reverseMessage">逆转消息</button>
</div>
 var app5 =  new Vue({
        el:'#app-5',
        data:{
            message:'Hello Vue.js'
        },
        methods:{
            reverseMessage:function () {
                this.message = this.message.split('').reverse().join('');
            }
        }
    });

表单输入和应用状态之间的双向绑定

<div id="app-6">
  <p>{{ message }}</p>
  <input v-model="message">
</div>
var app6 = new Vue({
  el: '#app-6',
  data: {
    message: 'Hello Vue!'
  }
})
在输入的时候,会自动映射到p标签内

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注