|
Vue.js 起步 每个 Vue 应用都需要通过实例化 Vue 来实现。 语法格式如下: - var vm = new Vue({
& A) R, B$ N9 k$ O( W/ M# z6 q+ O) m - // 选项- Z! F+ J4 Q" }
- })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容: - <div id="vue_det">
5 S9 w; u: Z7 n3 v9 X - <h1>site : {{site}}</h1>* U* H$ I7 s R) s* y! R
- <h1>url : {{url}}</h1>
7 g8 b0 S3 S# E( G - <h1>{{details()}}</h1>, X% O _. J. Y6 T) h
- </div>" J" } b, O* b; O- B, \9 {
- <script type="text/javascript">7 _6 }$ h$ d! G" f* V: ^
- var vm = new Vue({
' m# ]1 K. _5 u- S: S/ X - el: '#vue_det',% D% H0 E6 t% Q
- data: {
. I$ V# W$ C( A$ f# I$ v - site: "菜鸟教程",* n8 _# F; E8 q
- url: "www.runoob.com",5 n& P1 j1 s! H a; R% R+ N2 v
- alexa: "10000"
+ }# i+ Z( L0 p- J. \ - },% B. U1 L, H' \2 Z7 N7 C! G
- methods: {! W# Q3 w2 P1 Z9 r) ~& w1 n4 A# ?
- details: function() {: D# h7 L8 H5 [5 ~% q/ a
- return this.site + " - 学的不仅是技术,更是梦想!";- ~- w+ `& r B5 J# M; s
- }+ `& Z! [" g' N8 a1 N/ r. T# k
- }; P0 G4 ^* A! B: U; u
- })
7 Q7 r: b8 s& _9 u* ] - </script>
复制代码可以看到在 Vue 构造器中有一个el 参数,它是 DOM 元素中的 id。在上面实例中 id 为 vue_det,在 div 元素中: - <div id = "vue_det"></div>
复制代码这意味着我们接下来的改动全部在以上指定的 div 内,div 外部不受影响。 接下来我们看看如何定义数据对象。 data 用于定义属性,实例中有三个属性分别为:site、url、alexa。 methods 用于定义的函数,可以通过 return 来返回函数值。 {{ }} 用于输出对象属性和函数返回值。 - <div id="vue_det">9 U9 n( U; @% B" j
- <h1>site : {{site}}</h1>
/ `: z: O* s! D' x: j! j) ~' c - <h1>url : {{url}}</h1>
6 a1 \6 [( P* o9 c& l - <h1>{{details()}}</h1>
Q/ c2 ~; l( h3 v# ^8 M - </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。 - <div id="vue_det">* w% t+ q+ Z4 W* f% |& A: R0 }. _
- <h1>site : {{site}}</h1>
5 x! B S8 d" B. z9 C$ x6 i+ t: @ - <h1>url : {{url}}</h1>1 M$ J' e4 H! ]% A. O) |
- <h1>Alexa : {{alexa}}</h1>
( V3 Y6 E; v2 ?& z g - </div>' r: o( S4 o/ v
- <script type="text/javascript">
7 @% V. b8 J! U5 w - // 我们的数据对象
6 d- i% k. I6 b0 B1 v - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}2 _0 L1 j: i7 X) Y. T8 A9 n) A
- var vm = new Vue({
1 {" ]: t, ^5 T; K+ y# C - el: '#vue_det',: M& M, P. X0 H/ O+ v1 m
- data: data0 \: a$ v5 p# R0 ~
- })- ~0 {4 {1 Z% Q$ a# I5 C
- // 它们引用相同的对象!2 e- H( ]6 h; g+ S. |1 B
- document.write(vm.a === data.a) // true
6 p- \8 x: t5 ?9 W9 F - document.write("<br>")
$ f( E2 }# b4 k! x - // 设置属性也会影响到原始数据9 J" Z5 {3 P4 n1 [! E) b: e
- vm.site = "Runoob"
+ t5 \7 d& }( C - document.write(data.site + "<br>") // Runoob' `# u, p. E. j' y5 d5 C8 {; v
-
/ e' X! P& v5 Q( |6 C - // ……反之亦然1 C( X6 n X3 w, s; |& c. L
- data.alexa = 1234
1 {" @5 o/ E& \4 Q; j4 W - document.write(vm.alexa) // 1234
& f9 n8 y' b; E; d* n$ Y; s2 c* Q- A. V - </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如: - <div id="vue_det"># A5 l+ a- [3 L: w# V' ~/ @' B
- <h1>site : {{site}}</h1>' P) z5 n6 N) }6 D5 k4 z
- <h1>url : {{url}}</h1>
5 L" h) F3 M8 n) a - <h1>Alexa : {{alexa}}</h1>
7 h; R- @- V3 w- ~7 m9 p - </div>" X* i5 y* S \) e
- <script type="text/javascript">) Z: U: |5 o9 C( z9 k& m( N& m
- // 我们的数据对象+ P( N5 D- u/ @8 Y
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}" p/ O" Z3 B. _
- var vm = new Vue({% F8 j2 Y/ r" o8 B
- el: '#vue_det',9 ?" H" c y! z9 j" t* i
- data: data+ W. g3 U2 m) {3 i/ F$ b
- })# |) B1 J: r Z7 k
- 8 J. q+ n; E$ S( b' R+ }/ I
- document.write(vm.$data === data) // true
q+ J3 O( h9 A) W! g - document.write("<br>") // true
" W# e5 ~( H0 Q - document.write(vm.$el === document.getElementById('vue_det')) // true
5 i$ j! A& p, z. g* K T1 ? - </script>
复制代码 5 d( i) K: v6 n/ M) o: I
. G0 F3 J6 H s+ F* a( E |