依赖引入
<script src="https://unpkg.com/vue@2.6.10/dist/vue.js"></script>
Hello world 实现
<html><head><style></style></head><body><script src="https://unpkg.com/vue@2.6.10/dist/vue.js"></script><div id = "app">{{msg}}</div><script>new Vue({el: '#app',data() {return {msg: "hello geek!"}}})</script></body></html>
- 给节点定义id,这样组件可以和指定节点进行绑定
- Vue对象中的data节点,是对此实例数据的说明
- 其中div中获取对象实例中定义的msg的值通过
{{}}
来获取,这个叫做插值表达式
效果展示
按钮、todo列表
通过点击按钮获取输入框中的值,添加到todo列表中
- 定义按钮、绑定方法
<div><input type="text" v-model="info"><button @click="handleClick">添加</button>
</div><script>new Vue({el: '#app',data() {return {msg: "hello geek!",info: ''}},methods: {handleClick() {console.log(this.info)}}})</script>
input
为输入框,需要通过获取输入框中的内容添加到todo列表中,通过参数绑定:v-model="info"
进行绑定,在Vue对象中定义info
属性,用来接收输入框的值
button
绑定方法:@click = "handleClick"
,在Vue对象中定义方法列表,其中定义 handleClick
方法
<ul><li v-for="item in list">{{item}}</li>
</ul>
为将输入框的数据动态添加到todo列表中,使用v-for="item in list"
, 使用{{item}}
获取值,其中数据是从list
中取的,所以需要在对象内定义list
属性,是数组类型
new Vue({el: '#app',data() {return {msg: "hello geek!",info: '',list: []}},methods: {handleClick() {console.log(this.info)this.list.push(this.info)}}})
完整body如下:
<body><script src="https://unpkg.com/vue@2.6.10/dist/vue.js"></script><div id = "app">{{msg}}<div><input type="text" v-model="info"><button @click="handleClick">添加</button></div><ul><li v-for="item in list">{{item}}</li></ul></div><script>new Vue({el: '#app',data() {return {msg: "hello geek!",info: '',list: []}},methods: {handleClick() {console.log(this.info)this.list.push(this.info)}}})</script></body>
在点击方法内,将获取到的输入框的值添加到数组中
todo列表添加完成后清空
handleClick() {if (this.info != '') {this.list.push(this.info)this.info = ''}
}
组件定义
如果<li v-for="item in list">{{item}}</li>
这种遍历场景很多的话,我们为了不希望每个地方都写一遍,所以将此进行封装和定义:
Vue.component('todo-item', {props: ['item'],template: '<li class="item">{{item}}</li>'
})// 在使用时
<todo-item v-for="item in list" :item="item"></todo-item>
Vue.component
是注册一个名为todo-item
的组件,props
是用来接收参数的,这个参数是让template
中使用的
:item="item"
是将for
遍历中的item进行绑定的,和props
中定义的参数一致,如果props
中定义的参数为:value
,要给组件传值的话,就需要使用:value=""
来进行传值
总结
- 插值表达式
- vue对象实例化,我们的数据都是在对象中定义,以及方法也是在其中定义
- 属性绑定:
v-model
、循环遍历:v-for
、参数绑定:参数名称
以上写法我们每次都要刷新页面,没有热刷新,下面我们即将使用热更新的方式进行开发和学习