vue.js语法

vue

如果你之前已经习惯了用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" title="vue.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-ifv-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)" 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语法 的全部内容, 来源链接: utcz.com/z/379777.html

回到顶部