|
Vue.js 起步 每个 Vue 应用都需要通过实例化 Vue 来实现。 语法格式如下: - var vm = new Vue({
8 E, k2 z0 q8 P& |6 @( W+ @) \* y3 A - // 选项
, q7 \2 G! K5 }0 j5 l/ @! L; q: I - })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容: - <div id="vue_det">3 `( I+ F9 p: `- S! A! z
- <h1>site : {{site}}</h1>8 L; S$ Q. ]' T3 [0 B( y' Z4 Q
- <h1>url : {{url}}</h1>
- ]6 T* {. w' O8 A% n3 V! U - <h1>{{details()}}</h1>% Y5 s) ?; d/ t' O) Q7 H2 R
- </div>6 j# R; K% d1 R# `) i' J, A
- <script type="text/javascript">* M1 C; x' a0 t6 q8 M9 n
- var vm = new Vue({
3 O* n% \; A* w0 n D& l% B - el: '#vue_det',9 m. G) s: f7 X' X' f% v
- data: {! m! a+ c" y; f+ n8 g
- site: "菜鸟教程",* f- Q5 `4 N; n/ \) ]2 s
- url: "www.runoob.com",
5 j3 q4 u" ~, c; J - alexa: "10000"
, ]/ |& Y0 ^8 f$ o2 D! K - },9 K; J N# L* }: G2 T
- methods: {! J# Z+ S0 w& S
- details: function() {
+ o _6 S1 i" l5 c* K( ` - return this.site + " - 学的不仅是技术,更是梦想!";1 v; @) X; v2 z" h9 N6 O
- }
: N, [0 z0 d8 V: `3 X( E! o) S& ^ - }
9 c6 i+ C3 h2 k( Z6 }4 K - })
3 J& h9 }9 Z7 ~ m3 P* | - </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 Z% h: b# c6 ^$ Q( a0 y
- <h1>site : {{site}}</h1>8 m/ f& K9 i2 h, \ q; l, a
- <h1>url : {{url}}</h1>+ q; R) q6 e6 g/ D8 l# o
- <h1>{{details()}}</h1>
0 A* |7 r" H2 T2 V, P. A4 Z6 N - </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。 - <div id="vue_det">
$ o( c$ ~. S: Q - <h1>site : {{site}}</h1>
4 @# j" N# J) e0 o6 e - <h1>url : {{url}}</h1>' y G- h6 l7 G4 l/ |5 _8 s1 z
- <h1>Alexa : {{alexa}}</h1>
. _% t% B* z# B( L6 Q! i- q - </div>
. @. o" E' O1 E& l/ Z) M% H# S - <script type="text/javascript">
9 K, ~( Q" z. Z% v3 o, x2 ~ - // 我们的数据对象
$ z6 T5 v5 Z/ \ O$ [, w - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}' \ {/ S& p2 M7 | z* A
- var vm = new Vue({. E2 L V" l0 d) [0 C8 x
- el: '#vue_det',# h( `+ ]5 E9 b/ n" i
- data: data2 n" u7 c. A" F% `- s
- })1 }$ O- B) W: I$ g4 F
- // 它们引用相同的对象!" q8 r8 [% p3 C" f* [% T$ d
- document.write(vm.a === data.a) // true& j+ S7 o5 e) @0 q
- document.write("<br>")4 M; \( A. I9 u: g3 Q3 f3 e( ?
- // 设置属性也会影响到原始数据1 l! e2 ^5 Y1 \3 J: c: x5 ~/ q
- vm.site = "Runoob"2 J3 q5 g& m( y& F
- document.write(data.site + "<br>") // Runoob
W+ B E4 |7 s: n# A - & `) {+ |9 h3 H6 N4 s
- // ……反之亦然
- `, t. Q ?1 S t - data.alexa = 1234
3 L" `5 A) R( x* K8 J: m2 ~/ I - document.write(vm.alexa) // 1234$ I$ R$ o/ N0 ^) B
- </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如: - <div id="vue_det">& e* C9 _ `& \: ~$ F
- <h1>site : {{site}}</h1>
- [8 ~4 G! w* k, V - <h1>url : {{url}}</h1>& c, U- W6 Z# c& z
- <h1>Alexa : {{alexa}}</h1>
$ x& A. L* R2 d0 M+ B - </div>- p4 a) r* \7 ^
- <script type="text/javascript">0 l1 V- f; \$ ]/ p
- // 我们的数据对象5 F6 ]! x' }0 T; w
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
* x4 O9 m5 n' W$ c6 B - var vm = new Vue({* |2 n) O9 r0 e" {& ?
- el: '#vue_det',& v" f5 p8 W T# C5 L
- data: data: q! O7 t- L! w9 h6 `3 l. }2 |( y
- })- {& o5 x# N# J( ]$ q8 t0 L( R
- - k3 A, q k& w+ g- p$ ^
- document.write(vm.$data === data) // true8 H/ p) d6 z" u( V
- document.write("<br>") // true
- x5 V# f9 B, Q8 O3 r7 G: y4 @ - document.write(vm.$el === document.getElementById('vue_det')) // true
4 s. \' M3 q% o6 o7 ]* Z - </script>
复制代码
t4 Z6 s z, J8 a
8 x6 z! O0 |9 `7 {$ q9 x) ]1 Q |