web前端——Vue.js基础学习

  近期项目的前端页面准备引入Vue.js,看了网上一些简介,及它和JQuery的对比,发现对于新入门的前端开发来说,Vue 其实也是比较适用的一个框架,其实用性不比JQuery差,感觉还挺有意思,于是研究了

一下其基本用法,下面是整理出来的学习例子(有官网上的,也有自己消化以后整理的),希望对大家有参考价值。

<html>
<head>
    <title>Vue test</title>
</head>

<body>

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

<div id="app-2">
  <span v-bind:title="message">
    Hover your mouse over me for a few seconds to see my dynamically bound title!
  </span>
</div>

<div id="app-3">
  <p v-if="seen">Now you see me</p>
</div>

<div id="app-4">
  <ol>
    <li v-for="todo in todos">
      {{ todo.text }}
    </li>
  </ol>
</div>

<div id="app-4_2">
  <ul>
    <li v-for="todo in todos">
      {{ todo }}
    </li>
  </ul>
</div>

<div id="app-5">
    <p>{{ message }}</p>
    <button v-on:click='reverseMessage'>reverse button</button>
</div>

<div id="app-6">
    <p>{{ message }}</p>
    <input v-model='message'>
</div>

<div id="app-7">
  <ol>
    <!-- Now we provide each todo-item with the todo object    -->
    <!-- it's representing, so that its content can be dynamic -->
    <todo-item v-for="item in groceryList" v-bind:todo="item"></todo-item>
  </ol>
</div>
<div id="app-7_2">
    <ul>
        <todo-text v-for="item in textInfoList" v-bind:todo="item"></todo-text>
    </ul>
</div>
    
<script src="./vue.min.js"></script>
<script>

// 静态数据绑定
var app = new Vue({
  el: '#app',
  data: {
    message: 'Hello Vue!'
  }
})

// 动态属性值绑定
var app2 = new Vue({
  el: '#app-2',
  data: {
    message: 'You loaded this page on ' + new Date()
  }
})

// 控制标签是否显示
var app3 = new Vue({
    el: '#app-3',
    data: {
        seen: true
    }
})

// 遍历对象数组
var app4 = new Vue({
  el: '#app-4',
  data: {
    todos: [
      { text: 'Learn JavaScript' },
      { text: 'Learn Vue' },
      { text: 'Build something awesome' }
    ]
  }
})
// 直接遍历数组
var app4_2 = new Vue({
  el: '#app-4_2',
  data: {
    todos: [
      'Learn JavaScript',
      'Learn Vue',
      'Build something awesome'
    ]
  }
})

// 绑定一个逆排字符串的函数
var app5 = new Vue({
    el: '#app-5',
    data: {
        message: 'Hello Vue.js.'
    },
    methods: {
        reverseMessage: function() {
            this.message = this.message.split('').reverse().join('')
        }
    }
})

// 同步用户输入
var app6 = new Vue({
    el: '#app-6',
    data: {
        message: 'test text input.'
    }
})

// 动态绑定数据到模板中的变量
Vue.component('todo-item', {
  props: ['todo'],
  template: '<li>{{ todo.text }}</li>'
})
var app7 = new Vue({
  el: '#app-7',
  data: {
    groceryList: [
      { text: 'Vegetables' },
      { text: 'Cheese' },
      { text: 'Whatever else humans are supposed to eat' }
    ]
  }
})

// 注意参数名 todo 及其类型 ['todo'] 都不能变
Vue.component('todo-text', {
  props: ['todo'],
  template: '<li>{{ todo.line }} - {{ todo.text }}</li>'
})
var app7_2 = new Vue({
  el: '#app-7_2',
  data: {
      textInfoList: [
          { 
              line: 'line one.' ,
              text: 'textInfo'
          },
          { 
              line: 'line two.' ,
              text: 'textInfo'
          },
          { 
              line: 'line three.' ,
              text: 'textInfo'
          }
      ]
  }
})

</script>

</body>

</html>

 

posted @ 2016-12-19 16:59  笑叹词穷  阅读(485)  评论(0编辑  收藏  举报