|
Vue.js 起步 每个 Vue 应用都需要通过实例化 Vue 来实现。 语法格式如下: - var vm = new Vue({
' R: `4 e+ S/ R. ~3 ^. e. F4 p - // 选项
0 j& x5 P: @- C }) W; m3 O - })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容: - <div id="vue_det"># t5 G% b9 [) Z! d- y! l6 q
- <h1>site : {{site}}</h1>4 X5 d. a" w) s; n
- <h1>url : {{url}}</h1>
3 a- D3 V0 u, v* P9 _2 k - <h1>{{details()}}</h1>+ W/ ^( n5 v' I3 h
- </div>& Q, X k" q. i9 ^3 a1 p
- <script type="text/javascript">' t* y$ R9 V4 S2 }9 C" p+ m0 w
- var vm = new Vue({
# n ], J7 N0 \7 J( _ - el: '#vue_det',
) ~/ d4 T! F, n - data: {& S, |8 m$ ?, F, S; ?
- site: "菜鸟教程",8 t' d `0 ]+ m$ x
- url: "www.runoob.com",
$ i: W2 D. k7 T, H2 I% ]) Y - alexa: "10000"# K, ^* f' ^, z; o3 l
- },0 \% [- \# a8 q0 s; g# K9 w
- methods: {3 L5 {6 z0 P( h, L0 I, P D+ q$ m& F
- details: function() {
' P0 M4 }( t6 L/ N0 a" q" ]9 [ - return this.site + " - 学的不仅是技术,更是梦想!";; D3 @" A: J( M. W4 }
- }! ]1 E: y! j" {/ K: `/ t
- }
# t0 A5 y7 o& _4 a - })7 S5 Z' K. @' j+ R" ]. |, `
- </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">
[7 p% D8 r1 m* s7 G! a9 b - <h1>site : {{site}}</h1>. @8 n% ~2 S4 e
- <h1>url : {{url}}</h1>* W0 ?! b. N2 ~9 f% B9 k" |
- <h1>{{details()}}</h1>
' D3 \/ H+ ~# u( h, R2 o4 \, M - </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。 - <div id="vue_det">
& X, S* G( q( a - <h1>site : {{site}}</h1>
- `/ g1 P# [% f/ _! a% Y* S: w - <h1>url : {{url}}</h1>
$ {& ^" |! |: v: n - <h1>Alexa : {{alexa}}</h1>, v7 ]; v3 k* _' z
- </div>/ A( z/ s, `/ P: c; L
- <script type="text/javascript">" G3 m. @, I r0 g* m
- // 我们的数据对象
6 p0 i! v4 w+ O1 Z1 Z - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
7 ^8 [6 N9 ]/ n" k7 y$ P7 _ - var vm = new Vue({
, l0 W; |; Y- I - el: '#vue_det',7 H, e* _: t, U' p1 ~6 J8 P
- data: data: k+ p3 V, S7 [
- })
. S' x, x# u3 ^( Y- D& o - // 它们引用相同的对象!
2 ]( |% J. a8 g y( Z% C - document.write(vm.a === data.a) // true7 E, p' O: `& s- r. c2 f4 \) r
- document.write("<br>")9 A9 N& D0 A. d) R. F
- // 设置属性也会影响到原始数据
* Z) h' V; N8 ] - vm.site = "Runoob"
1 L$ f0 i q) X$ h2 D: }( N - document.write(data.site + "<br>") // Runoob' T- T7 A3 { x- G# Q
-
/ A. B3 l" r# y - // ……反之亦然
& r% W5 f$ u0 o8 o& m' i( T. f - data.alexa = 1234 A) a* M% u0 }1 z T. Z6 N3 z
- document.write(vm.alexa) // 1234
) j8 q7 {9 S$ ^7 u - </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如: - <div id="vue_det">2 G: W# w0 A8 R0 Z
- <h1>site : {{site}}</h1>
0 c, p. C3 a5 v* Z& J3 B - <h1>url : {{url}}</h1>
2 N. ^" ]5 t5 k+ l - <h1>Alexa : {{alexa}}</h1>
$ x- T& n& S7 h2 U& u" r - </div>
1 E5 D* D) L& v - <script type="text/javascript">
: `7 l2 P% H* w - // 我们的数据对象
8 \- O% T" Z$ i I8 o0 X0 w1 H - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}2 _; J3 f& S+ N5 c( ]
- var vm = new Vue({
* R# q/ `8 c5 Z9 {7 o - el: '#vue_det',0 m. F& K1 n. a z
- data: data
# ?& `8 Q' K, n. y8 s - })
2 c7 s! ?7 b" n) W -
' w" t$ l- E4 z7 ~- s4 Z2 v - document.write(vm.$data === data) // true
: \8 ^! |# G8 n$ b - document.write("<br>") // true
9 D6 A. z) w3 `$ E6 g1 ~+ w+ b - document.write(vm.$el === document.getElementById('vue_det')) // true
8 Y7 ?! u6 B8 S7 J& K0 W9 V: N1 {$ \ - </script>
复制代码 ) I* w3 g5 f; Q5 b, {; @' g
s" I7 ~* s8 V" r% K) @, A+ V8 h |