|
Vue.js 起步 每个 Vue 应用都需要通过实例化 Vue 来实现。 语法格式如下: - var vm = new Vue({
- k% G8 F$ Y; e4 ^ - // 选项
2 \+ I3 N# @) v+ Y - })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容: - <div id="vue_det">- r! E' V: H8 b' G
- <h1>site : {{site}}</h1>: j0 D8 \; l1 q" x! T& }+ L
- <h1>url : {{url}}</h1>& I: i. r2 h5 \- m
- <h1>{{details()}}</h1>9 b7 G; c O. _# a* U4 ?( U4 k$ e
- </div>0 K, n( L9 J5 E; i9 H! Q- M/ m. j+ n
- <script type="text/javascript">
( @$ l( a3 \) n$ d+ |" m - var vm = new Vue({6 d( a+ R5 `# L2 _' F
- el: '#vue_det',
- r [; l4 B2 L! B1 t - data: {3 w2 {% Y3 K4 C7 V+ N9 O o
- site: "菜鸟教程",
/ h( d% X5 @" w/ `7 n6 B9 N7 S - url: "www.runoob.com",9 M" H; l, h4 u
- alexa: "10000" Z* W# R- ~% A
- },
. t3 I# o6 _% \ r; f - methods: {
9 q& K/ b0 ]0 A+ y3 A - details: function() {
) F4 t5 R2 g" u% g& J: W8 G; [ - return this.site + " - 学的不仅是技术,更是梦想!";6 T# q5 R' Q5 } l
- }4 _6 L2 X1 E1 }/ P$ m
- }* ?/ `1 L) j$ s r9 Q
- })4 w1 W1 x" u5 Q) U) [! ~+ d
- </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">. b7 ]' @% w' C: F1 l1 A. [( s8 ?
- <h1>site : {{site}}</h1>& T' y% e" M- s. \5 P! V
- <h1>url : {{url}}</h1> H/ D0 K* P# M
- <h1>{{details()}}</h1>' N' T5 I( D& X) D3 j
- </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。 - <div id="vue_det">
) g, ~* u3 y; x8 q - <h1>site : {{site}}</h1>" n5 A4 q- K. ~. y9 a
- <h1>url : {{url}}</h1>
; j9 ^% m5 e( N: C v( v+ d" r, G - <h1>Alexa : {{alexa}}</h1># O m. }! f! p
- </div>- V2 p' W R. O' \/ Q# k
- <script type="text/javascript">
' v" J, g3 A6 h. i$ i" U - // 我们的数据对象$ ~" v5 p# w3 W) @( y8 O% b
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
9 b& ]. N, ?' U: h! e' |* a; I, A9 i - var vm = new Vue({8 E- d2 @, O) R3 @
- el: '#vue_det',' j3 h2 `$ u& t% @, J
- data: data
& }- M+ L& y L9 E7 Q - }); W0 E1 {0 P- z& i/ L2 s; C5 ~; b
- // 它们引用相同的对象!
/ p t" x4 j7 Z$ ^3 x - document.write(vm.a === data.a) // true
. W0 L% V. N# M: g. y+ z" ^ - document.write("<br>")
) f) \, C, p9 {$ R# P' ?- w - // 设置属性也会影响到原始数据
- Z9 g; \7 L+ n4 ~ - vm.site = "Runoob"
& G7 V% D2 X# _8 X# y" H8 p! E+ ^ - document.write(data.site + "<br>") // Runoob: z0 J3 R c' ]' _0 y7 _3 |/ G6 [+ ?
- 6 L. [1 M& Q4 c' y) t
- // ……反之亦然
3 _8 Y& ~4 a) b ` - data.alexa = 1234: g8 J$ L* J9 ]% H& u, j. F
- document.write(vm.alexa) // 1234
3 T) q- P) u! \% m - </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如: - <div id="vue_det">5 V3 X2 Y8 P' D7 g% ?6 N( y6 e
- <h1>site : {{site}}</h1>
- ]5 ~) L" e [ - <h1>url : {{url}}</h1># @+ @/ P2 a7 ^( H3 q
- <h1>Alexa : {{alexa}}</h1>+ c+ ^- R `# D E. E9 j( O, q
- </div>4 t1 W3 ?8 s! _. _0 \' ~
- <script type="text/javascript"># u0 ]# ~) C7 S0 l3 E. c+ @- e' g
- // 我们的数据对象
) _- a+ h$ {+ M, r) y1 g1 H; j; { - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}6 _1 w* U2 q7 U5 K: T/ ?
- var vm = new Vue({
& z0 a1 q, v; ` - el: '#vue_det',) i! R3 Y- b3 q6 I( ^# C r. R% q
- data: data
1 b1 e. m* |) ?# {3 a" _; B - })6 O% m: w& h+ r" R2 J9 H
-
2 K9 ]* g: o" P8 [) m3 h; y - document.write(vm.$data === data) // true$ u p% {0 V5 _9 o
- document.write("<br>") // true/ u, X, x" l$ r7 c8 S6 Q$ ~
- document.write(vm.$el === document.getElementById('vue_det')) // true, ~( S; D0 W; r/ F9 h: P+ U! U
- </script>
复制代码 - S; y5 V; Y$ J/ j% ~. o
& O) d- s5 { ]+ u7 i |