当前位置: 移动技术网 > IT编程>脚本编程>vue.js > vue.js语法及常用指令

vue.js语法及常用指令

2017年12月12日  | 移动技术网IT编程  | 我要评论

不堪的意思,许明明资料,电子科大校花

vue.js是当下很火的一个javascript mvvm(model-view-viewmodel)库,它是以数据驱动和组件化的思想构建的。相比于angular.js,vue.js提供了更加简洁、更易于理解的api,使得我们能够快速地上手并使用vue.js。

如果你之前已经习惯了用jquery操作dom,学习vue.js时请先抛开手动操作dom的思维,因为vue.js是数据驱动的,你无需手动操作dom。它通过一些特殊的html语法,将dom和数据绑定起来。一旦你创建了绑定,dom将和数据保持同步,每当变更了数据,dom也会相应地更新。

当然了,在使用vue.js时,你也可以结合其他库一起使用,比如jquery。

1.使用

使用vue的过程就是定义mvvm(model-view-viewmodel)各个组成部分的过程的过程。

<!--这里定义view-->
<div id="app">{{ message }}</div>
<script src="js/vue.js"></script>
<script>
    // 这里定义model
    var exampledata = {
      message: 'hello world!'
    }
    // 这里创建一个 vue 实例或 "viewmodel"
    // 连接 view 与 model
    new vue({
      el: '#app',
      data: exampledata
    })
</script>

2.vue.js的常用指令

vue.js提供了一些常用的内置指令,接下来我们将介绍以下几个内置指令: 

•v-if指令
•v-show指令
•v-else指令
•v-for指令
•v-bind指令
•v-on指令

vue.js具有良好的扩展性,我们也可以开发一些自定义的指令,后面的文章会介绍自定义指令。

2.1 v-if指令

v-if后面赋予 可以转化为布尔类型的表达式

<div id="app">
      <h1>hello, vue.js!</h1>
      <h1 v-if="yes">yes!</h1>
      <h1 v-if="no">no!</h1>
      <h1 v-if="age >= 25">age: {{ age }}</h1>
      <h1 v-if="name.indexof('jack') >= 0">name: {{ name }}</h1>
</div>
 <script src="js/vue.js"></script>
 <script>
    var vm = new vue({
      el: '#app',
      data: {
        yes: true,
        no: false,
        age: 28,
        name: 'keepfool'
      }
    })
 </script>

这里最后就输出

<div id="app">
  <h1>hello, vue.js!</h1>
  <h1>yes!</h1>
  <!---->
  <h1>age: 28</h1>
  <!---->
</div>

2.2 v-show

 <div id="app">
      <h1>hello, vue.js!</h1>
      <h1 v-show="yes">yes!</h1>
      <h1 v-show="no">no!</h1>
      <h1 v-show="age >= 25">age: {{ age }}</h1>
      <h1 v-show="name.indexof('jack') >= 0">name: {{ name }}</h1>
    </div>
  </body>
  <script src="js/vue.js"></script>
  <script>
    var vm = new vue({
      el: '#app',
      data: {
        yes: true,
        no: false,
        age: 28,
        name: 'keepfool'
      }
    })
  </script>

这里代码只是v-if改为v-show

输出为

<div id="app">
<h1>hello, vue.js!</h1>
<h1>yes!</h1>
<h1 style="display: none;">no!</h1>
<h1>age: 28</h1>
<h1 style="display: none;">name: keepfool</h1>
</div>

这里区别是上面v-if直接不输出html代码,这里用display:none隐藏

2.3 v-else指令

<h1 v-if="age >= 25">age: {{ age }}</h1>
<h1 v-else>name: {{ name }}</h1>
<script src="js/vue.js"></script>
  <script>
    var vm = new vue({
      el: '#app',
      data: {
        age: 28,
        name: 'keepfool',
        sex: 'male'
      }
    })
</script>

 前一兄弟元素必须有 v-if 或 v-else-if,新版的vue.js新增了v-else-if用法也跟v-if一样,不过前一兄弟元素必须有v-if或v-else-if,旧版的v-else前面可以跟v-show,但新版v-else前面不能是v-show了。

2.4 v-for指令

<div v-for="p in people">
   <h1>age: {{ p.age }}</h1>
   <h1>name: {{ p.name }}</h1>
   <h1>sex: {{ p.sex }}</h1>
</div>
<script charset="utf-8" src="js/vue.js"></script>
<script type="text/javascript">
   var mymodel = {
    people:[
      {
        age: 25,
        name: 'keepfool',
        sex: 'male'
      },
      {
        age: 26,
        name: 'keepfool2',
        sex: 'female'
      },
      {
        age: 27,
        name: 'keepfool3',
        sex: 'male2'
      }
    ]
  };
 var vm = new vue({
  el: '#app',
  data: mymodel
})
</script>

父元素用v-for,子元素可以遍历绑定的对应array | object | number | string

v-for还可以这样用:

<div v-for="(item, index) in items"></div>
<div v-for="(val, key) in object"></div>
<div v-for="(val, key, index) in object"></div>

2.5 v-bind指令

v-bind指令可以在其名称后面带一个参数,中间放一个冒号隔开,这个参数通常是html元素的特性(attribute)

<div id="app">
   <ul class="pagination">
     <li v-for="n in pagecount">
       <a href="javascripit:void(0)" rel="external nofollow" v-bind:class="activenumber === n ? 'active' : ''">{{ n }}</a>
     </li>
   </ul>
</div>
 <script src="js/vue.js"></script>
  <script>
    var vm = new vue({
      el: '#app',
      data: {
        activenumber: 1,
        pagecount: 10
      }
    })
  </script>

又例如:

<img v-bind:src="'/path/to/images/' + filename">
<div v-bind="{ 'id': someprop, 'other-attr': otherprop }"></div>

2.6 v-on指令

<div id="app">
      <p><input type="text" v-model="message"></p>
      <p>
        <!--click事件直接绑定一个方法-->
        <button v-on:click="greet">greet</button>
      </p>
      <p>
        <!--click事件使用内联语句-->
        <button v-on:click="say('hi')">hi</button>
      </p>
</div>
 <script src="js/vue.js"></script>
  <script>
    var vm = new vue({
      el: '#app',
      data: {
        message: 'hello, vue.js!'
      },
      // 在 `methods` 对象中定义方法
      methods: {
        greet: function() {
          // // 方法内 `this` 指向 vm
          alert(this.message)
        },
        say: function(msg) {
          alert(msg)
        }
      }
    })
  </script>

2.7 v-model指令

v-model在表单控件元素上创建双向数据绑定

<input v-model="message" placeholder="edit me">
<p>message is: {{ message }}</p>

总结

以上所述是小编给大家介绍的vue.js语法及常用指令,希望对大家有所帮助!

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网