当我坐在那架破旧古钢琴旁边的时候,我对 最幸福的国王也不羡慕。—— 海顿

vue学习--起步(二)

回顾

上一篇中我们已经开始了第一个Hello Vue程序,今天我们会开始往其中添加一些更为有趣且实用的内容。从而对在vue情景下书写web程序的方式有个整体感性的认识。

声明式指令渲染(Declarative-Rendering)

上一篇中其实就已经有使用

<div id="app">
      {{ message }} // 文本插值--数据绑定最基础的形式
</div>

除了文本插值,我们也可以绑定某个元素属性:

代码

// HTML
<div id="app-2">
  <span v-bind:title="message">
    鼠标移过时提示一段文字信息(加载页面的时间)
  </span>
</div>
// JavaScript
var app2 = new Vue({
  el: '#app-2',
  data: {
    message: 'You loaded this page on ' + new Date()
  }
})

运行结果

在上述代码中我们用到了v-bind来绑定属性,在vue里称为指令,以v-为前缀标识。vue中还有很多类似的其它各种指令,运用于不同场景。

和"文本插值"一样,用v-bind绑定的数据也是响应式的,我们同样可以打开Console控制台修改"app2.message = 'some new message'"进行验证。

条件渲染

在vue中想要动态实现是否渲染某个元素,可以通过条件渲染轻松做到。

// HTML
<div id="app-3">
  <p v-if="seen">seen为true时渲染显示</p>
</div>
// JavaScript
var app3 = new Vue({
  el: '#app-3',
  data: {
    seen: true
  }
})

运行结果

同样的,打开Console控制台修改"app3.seen = false",可以看到对应的元素将不再显示。

Tips:这个指令除了显示和隐藏元素外,通过搭配vue的过渡系统,可以实现各种transition effects

列表渲染

和传统的模板引擎类似,vue的众多指令中提供了很方便的v-for指令用于列表数据的渲染。

<div id="app-4">
  <ol>
    <li v-for="item in list">
      {{ item.name }}
    </li>
  </ol>
</div>
var app4 = new Vue({
  el: '#app-4',
  data: {
    list: [
      { name: '小明' },
      { name: '小张' },
      { name: '小鹏' }
    ]
  }
})

运行结果

Tips:我们可以通过Console控制台修改app4.list.push({ name: '老王' }),观察html视图的变化。

处理用户操作

要让应用跑起来,必不可少的需要让用户和你的应用进行交互,vue中可以用v-on指令监听DOM事件,很方便的绑定事件处理器到一个方法。

<div id="app-5">
  <p>{{ message }}</p>
  <button v-on:click="reverseMessage">Reverse Message</button>
</div>
var app5 = new Vue({
  el: '#app-5',
  data: {
    message: 'Hello Vue.js!'
  },
  methods: {
    reverseMessage: function () {
      this.message = this.message.split('').reverse().join('')
    }
  }
})

运行结果


分享

分享本文章

文章来源
124510

佚名 2016-10-31

标签

vue

right left pencil2 css3 node design eye tags search rss back user pacman film