|
Vue.js 起步 每个 Vue 应用都需要通过实例化 Vue 来实现。 语法格式如下: - var vm = new Vue({& n: q8 g+ b5 b% [0 f0 R2 C, W
- // 选项
' ?' W8 v0 i" k, K1 G - })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容: - <div id="vue_det">
; f- _% f# Q/ A3 J4 J: n$ Q& Q: Q4 a - <h1>site : {{site}}</h1>
& U6 b+ ~9 i9 o& B& R$ z - <h1>url : {{url}}</h1>8 P8 c/ N" T$ C/ | K
- <h1>{{details()}}</h1>/ ?. p% j- ], R+ k( l
- </div>3 m" \8 z3 p( s& d! v1 l) ]& j
- <script type="text/javascript">
9 q) Y% v5 }3 ~ - var vm = new Vue({+ d6 L* s" ]; l$ P# ]! v% y. U/ h4 Y
- el: '#vue_det',
# E H, u: n K, j/ U3 y) @8 }* I - data: {: X# A9 X- i* `* X
- site: "菜鸟教程",& l! R [7 N# E4 ^
- url: "www.runoob.com",
. k4 I+ E+ I* @3 i- q: Z4 C - alexa: "10000"8 l2 x% i0 m6 t' R! `2 z$ n
- },
$ R, w1 O- y! U! X: G - methods: {
2 k3 g) y, l) ~% A, E$ n - details: function() {1 a* i& h6 K1 L" T! c+ N4 |
- return this.site + " - 学的不仅是技术,更是梦想!";
9 Z3 X! n" m3 m" s - }
% g+ ~! o6 v. g! M9 {$ a! ^ - }
/ X4 m0 q* m: K1 l- c9 q- e8 e- p - })
( a0 G8 k6 \. S; M( I2 { - </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">
+ M0 b! A# T* ^3 j8 o, O# v6 n - <h1>site : {{site}}</h1>
4 d6 y% v9 e2 U' N2 R' x - <h1>url : {{url}}</h1>
% p! d0 R( P1 L; q W - <h1>{{details()}}</h1>4 ^+ i c' W. U1 O0 ?1 B
- </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。 - <div id="vue_det">2 z4 A7 @4 Y4 H) f. ^# B
- <h1>site : {{site}}</h1>
2 t' x: L, S t ?8 F3 G - <h1>url : {{url}}</h1>
2 I, w, ^" w! m# u - <h1>Alexa : {{alexa}}</h1>
. U" ]. U" a d8 c- i( ` `4 ~4 N! ] - </div>
0 F; [( y" i) G( ?0 y: \ - <script type="text/javascript">( p4 r: a. [) i7 p
- // 我们的数据对象3 A3 _: @2 p" }+ T5 J/ t9 J
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}: s, O6 I5 L( V$ S# o
- var vm = new Vue({! b: e& x! t6 e. u, |
- el: '#vue_det',; P* O2 n- l; \0 {+ u
- data: data
$ C) F1 ?6 O, K/ F1 Q - })
* \: t+ |: g5 G4 p( C8 q; q: n* o P - // 它们引用相同的对象!
6 L$ Q- ?% b+ h( I; d7 c {% k' O - document.write(vm.a === data.a) // true- ]' t) Z8 z: }4 T; \8 I' n5 b
- document.write("<br>")$ ?' L) u4 {$ \2 b/ L9 B R
- // 设置属性也会影响到原始数据
6 ?- M1 d8 ]: } - vm.site = "Runoob"2 B* B9 _) C4 d. U, _/ C' V
- document.write(data.site + "<br>") // Runoob
5 f" d [5 m" L - , p& ^% Z# R* E6 V: e
- // ……反之亦然/ l2 k; v: B$ A; N2 [( }
- data.alexa = 1234
, }" R! K% y0 U1 M2 K& v - document.write(vm.alexa) // 1234# S2 @& s; u. d/ `
- </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如: - <div id="vue_det">1 }- O' Y1 @! j/ J7 Z. s3 H6 f6 i
- <h1>site : {{site}}</h1>
8 {! @ Z: h4 g) C A5 H - <h1>url : {{url}}</h1>% ~6 ]( d$ C6 w! a
- <h1>Alexa : {{alexa}}</h1>
' Z8 e3 i& x: h. M( ?1 } - </div>
) ]; z$ O/ j% F7 \- D' w - <script type="text/javascript">0 Q, m1 o6 J0 g) V; y- ^2 i1 J* ]8 h
- // 我们的数据对象" k( ]* W$ Y% E/ e& ^- H( C0 ~
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}, t5 f8 p9 L6 A" C5 D
- var vm = new Vue({
0 M, F" o* z" e9 Z" n/ e7 u' r - el: '#vue_det',5 S9 I! d# R: Y
- data: data ?3 R5 h6 G0 w
- })
1 a6 v. n8 V5 c% W* s! n1 f- T -
. t, _, r a5 C4 ` - document.write(vm.$data === data) // true# D# ?$ W+ I; \ y4 p
- document.write("<br>") // true
& ~8 m5 W2 E$ J8 [8 { - document.write(vm.$el === document.getElementById('vue_det')) // true
3 n& L- v/ I! t {# ] - </script>
复制代码 * B- m# U" z& P
6 e2 j9 t9 ~- I1 p
|