const vm = new Vue ({});
data用于保存当前Vue实例中所需要用到的数据。
data属性的值只有两种情况:对象、返回对象的函数:
- //第一种:
- const vm = new Vue({
- data:{
- // 数据
- }
- });
-
- //第二种:
- const vm = new Vue({
- data(){
- return {
- // 数据
- }
- }
- })
注意:在后续学习完“组件”以后,组件中的data就只能使用“返回对象的函数”了。
el属性用于指定当前Vue实例的挂载目标,换句话说,el属性就是用来指定Vue实例的作用范围。
el的属性值是一个字符串,用于设置挂在目标节点的选择器。
注意:不要将body设置为挂载目标,因为Vue最终渲染成功后会将挂载目标元素给替换掉。
在挂载目标范围内,通过{{}}双大括号的语法,可以将Vue示例中的数据渲染到页面上。
示例:
- <div id="app">
- <div>
- <h1>{{msg + student.name}}</h1>
- <h3>{{flag ? 'hello' : 'world'}}</h3>
- </div>
- </div>
- <script src="js/vue.min.js"></script>
- <script>
- const vm = new Vue({
- el: '#app',
- data() {
- return {
- // 数据
- msg: 'hello world!',
- student: {
- name: 'ZhangLing',
- age: 20
- },
- flag: true
- }
- }
- })
- </script>
页面显示效果:
Vue中提供了一个 v-on 指令,用来设置事件监听。
<button v-on:click="handleClick">按钮</button>
Vue中提供了一个 methods 属性,用来设置Vue中所有需要用到的方法。
- const vm = new Vue({
- methods:{
- handleClick(){
- console.log('123');
- }
- }
- });
示例效果:
当点击按钮时,执行函数:

响应式
当一个Vue实例被创建时,它将 data 对象中的所有属性(数据)加入到Vue的响应式系统中,当 data 中的数据值发生改变式,视图(页面)会自动去“响应”数据的变化,立即更新为最新的数据。
示例:
当点击按钮,文字会发生变化
- <div id="app">
- <div>
- <h4>{{msg}} {{student.name}}</h4>
- </div>
- <button v-on:click="handleClick">按钮</button>
- </div>
- const vm = new Vue({
- el: '#app',
- data() {
- return {
- // 数据
- msg: 'hello world!',
- student: {
- name: 'ZhangLing',
- age: 20
- },
- }
- },
- methods:{
- handleClick(){
- this.student.name = 'Lili'
- }
- }
- })
点击前:

点击后:

案例:实现简易计数器
代码:
- <!DOCTYPE html>
- <html lang="en">
-
- <head>
- <meta charset="UTF-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>计数器</title>
- <style>
- #app{
- text-align: center;
- }
- </style>
- </head>
-
- <body>
- <div id="app">
- <h1>计数器:{{count}}</h1>
- <button v-on:click="count--">-1</button>
- <button v-on:click="increate">+1</button>
- </div>
- </body>
- <script src="js/vue.min.js"></script>
- <script>
- new Vue({
- el: '#app',
- data() {
- return {
- count: 0,
- }
- },
- methods: {
- increate() {
- this.count++;
- }
- }
- })
- </script>
-
- </html>
效果: