|
Vue.js 起步 每个 Vue 应用都需要通过实例化 Vue 来实现。 语法格式如下: - var vm = new Vue({6 C* j0 `$ g7 I( n5 G3 T6 s
- // 选项
* ~3 [# k! } f; d. g5 B- w: ` - })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容: - <div id="vue_det">
" S! m9 C- R! w: B4 N# @ - <h1>site : {{site}}</h1>
- D; h# X. G% U9 h) T - <h1>url : {{url}}</h1>
/ T# ?1 K# \1 E( r3 `; U* p - <h1>{{details()}}</h1>: W* d, @7 Y% N) A
- </div>' @0 A: B6 j, p
- <script type="text/javascript">
5 j: M& Y; S! E; o" j - var vm = new Vue({# q# l1 F. r# {4 p) E
- el: '#vue_det',
3 y! S4 A1 u, G! }% U) x8 u - data: {( I1 C5 D! N$ `) ]: i+ z2 r$ A
- site: "菜鸟教程",; z; r2 x+ c" y5 r) l
- url: "www.runoob.com",( i D7 p1 n0 j* ?% S/ J
- alexa: "10000", e; Y" N- V* k! y- m" v0 N1 N# l. g
- },* W! T1 t' c3 c2 G* d
- methods: {0 o2 i4 Y R" A
- details: function() {
. ]- o: } I& `3 W* S/ l' S) D# A# } - return this.site + " - 学的不仅是技术,更是梦想!";6 a! C- V& e3 ~! @% l
- }
. Q2 O. g7 t" |" Y - }
% Q" ]% z$ }/ l/ ?) K1 B - })
! w& y5 x. T4 c- D, Y- Y/ ] - </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">
& H( ~; [" {7 R* [ - <h1>site : {{site}}</h1>
% ] y2 I; S4 y* }! a - <h1>url : {{url}}</h1>4 A7 t7 Z5 }7 J# B1 C+ Y \
- <h1>{{details()}}</h1>
0 Y- O3 O9 k2 {9 P2 l - </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。 - <div id="vue_det">
* r$ R" @+ v. K% ~ - <h1>site : {{site}}</h1>8 _5 t0 m0 b) f0 O, H' ?
- <h1>url : {{url}}</h1>
% `" U0 a" {+ d. g; j8 s - <h1>Alexa : {{alexa}}</h1>! r, ^- m$ H5 G i
- </div>
, g9 `8 D* E- E9 Y* k - <script type="text/javascript">. u2 Q4 V- ]/ K
- // 我们的数据对象
- n. s( q; l' G9 p* i - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000} R5 p% |' {( h
- var vm = new Vue({) f1 u2 j' i0 c' w4 j$ i5 Y' f
- el: '#vue_det',
3 s# E" `& e: F - data: data3 ]' [! B( h% B& p; ]
- })* D' ]0 ?% s4 p; B/ T" V
- // 它们引用相同的对象!
$ p2 }8 }# ?9 g: t - document.write(vm.a === data.a) // true9 S7 y7 n6 _1 D$ ?) S
- document.write("<br>")
3 q1 j) W* U& S - // 设置属性也会影响到原始数据
6 O4 t" f5 v; k& }- w& b - vm.site = "Runoob". b4 L, q; v: Y$ J% m( M C
- document.write(data.site + "<br>") // Runoob
2 A& j7 X# |# ?% N4 k5 e2 }+ {9 l - 4 M5 o+ u6 ^1 Y4 W. K/ X
- // ……反之亦然
3 q) o4 ]* Y* @/ U3 r& ? - data.alexa = 12340 i/ |& c* M( c% N6 a
- document.write(vm.alexa) // 1234
6 }$ a! x7 q: s8 u4 m- I! I0 n( q - </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如: - <div id="vue_det">, K5 s. F, A+ l) s( ~
- <h1>site : {{site}}</h1>- |9 N5 Q5 C1 n. W; |
- <h1>url : {{url}}</h1>
- K: D# S: F) @0 O! x; D( j - <h1>Alexa : {{alexa}}</h1>
0 f' a) E) F" }3 C - </div>! n4 W$ H. F% B. B
- <script type="text/javascript">
! o0 j& a! z3 r; r - // 我们的数据对象3 m* H* G' K. \. i; m
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
) b! R; Y" A( `8 T, \; h% | - var vm = new Vue({
8 W- [" v4 Z7 k& V - el: '#vue_det',
) m9 ]" e: m" M0 h5 F - data: data
1 Y2 p ^+ h0 d7 `; e& g' Q - })
5 W" V& u' g& G- t1 F6 E. n, L4 }/ Q - % D" V2 J( M' b- @
- document.write(vm.$data === data) // true9 y& ?0 f: T q/ U' H/ {3 M
- document.write("<br>") // true* v I" c; m, B8 V+ u/ F* K
- document.write(vm.$el === document.getElementById('vue_det')) // true
" p, M( O) [. Y0 `0 Z - </script>
复制代码
9 k2 ~& ^. ?2 @' @9 c+ b1 A# o, O2 _' |; Y0 h; D
|