Vue.js 起步 每个 Vue 应用都需要通过实例化 Vue 来实现。 语法格式如下: - var vm = new Vue({/ Y# O- B, d v2 ]6 w X
- // 选项
& Z6 F$ j! A' |( `: X - })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容: - <div id="vue_det">: V1 X* ]9 N. O- U3 C3 f
- <h1>site : {{site}}</h1>
* g" Q0 P' A, f - <h1>url : {{url}}</h1>
$ ]- \& X) D3 \6 |% @ - <h1>{{details()}}</h1>
+ e f$ ^- p0 _9 E# P& M - </div>
8 S7 s1 O: `) S1 { - <script type="text/javascript">
; W+ o9 q- k6 F - var vm = new Vue({
7 |. `# `! _$ }; `6 s6 _ - el: '#vue_det',
% O0 R9 n8 @ e* U7 w% U - data: {) b. j& H$ B8 O" o a. T" v
- site: "菜鸟教程",
* q6 H, Z( s3 j6 X) E - url: "www.runoob.com",
$ a1 o, \0 r% O1 G - alexa: "10000"- l) z1 p- _! i; f' Z6 b
- },$ R; ^8 j0 [4 a0 p" c) H5 \7 }
- methods: {
6 y; V$ O5 q0 x/ C& A* u8 F- r - details: function() {/ W* O$ \* K9 j. ]
- return this.site + " - 学的不仅是技术,更是梦想!";
8 h/ ~$ i r, E7 P8 t - }9 C- n. B5 C! c# U1 w
- }) [" M. f! m4 L* D
- })
' X. [* w& v6 J' ]) a9 |% N9 H9 f - </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">
3 l5 R" \( `5 M - <h1>site : {{site}}</h1>0 G8 }& l& S$ R- n0 k8 J
- <h1>url : {{url}}</h1>
1 V/ H, c3 ?( W! t. C; y& o) i - <h1>{{details()}}</h1>
1 n9 U2 W6 v1 a i4 k8 U - </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。 - <div id="vue_det">1 `3 o6 u& o# o; h; |
- <h1>site : {{site}}</h1>+ j. w+ |0 R9 L9 t
- <h1>url : {{url}}</h1>
, }# f6 H( w+ \1 l0 E# p - <h1>Alexa : {{alexa}}</h1>8 h6 T4 {) p6 B9 j: y! X
- </div>
6 P9 b; }5 R. Y9 r ^2 j/ d% z - <script type="text/javascript">0 G! z4 T) I/ M4 g& ]( u
- // 我们的数据对象
9 d" b ^ A# @" [- B - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
# O# j; t* F; P - var vm = new Vue({8 s& y* _+ H) M3 V
- el: '#vue_det',
$ q. c7 _+ `: e2 O. K - data: data
, E: ~! n+ W0 R+ D; S$ R7 \" u8 N' Y2 ~ - })
* o0 o( Z L( [& F$ _6 V - // 它们引用相同的对象!8 n/ T; X" e) @
- document.write(vm.a === data.a) // true3 x6 g; I/ Y& J
- document.write("<br>")
6 U+ P4 w; \7 J2 v* d' ~& w - // 设置属性也会影响到原始数据; \$ O$ D0 L u; W: W
- vm.site = "Runoob"/ R! K7 q3 i' \- `3 c1 \$ G
- document.write(data.site + "<br>") // Runoob7 B- l+ ]! t D' j/ |! V4 `* d( I
-
0 ^6 O6 q7 F3 S, }# v" l! [ - // ……反之亦然8 L- H( k/ m% @' I
- data.alexa = 1234' R% K# y6 [1 O7 \
- document.write(vm.alexa) // 1234
5 X5 {) Z' \3 X/ A) w. q - </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如: - <div id="vue_det">
! A+ R( T/ S2 n/ A2 b; }' \ - <h1>site : {{site}}</h1>
/ {2 r* R) T3 p9 ^) o+ F4 q, k - <h1>url : {{url}}</h1>
8 Y5 f2 @+ N2 c) C% i( e: b6 e - <h1>Alexa : {{alexa}}</h1>
0 G) z! K, j- ^9 _# A1 { - </div>
9 M1 Y, m5 q# N - <script type="text/javascript">. S/ p; R# {/ ~ z0 P
- // 我们的数据对象, b% p S# H/ }& L9 x' k3 o
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}7 N: q1 b( p/ r
- var vm = new Vue({
# N# y7 i) `+ K - el: '#vue_det',7 `- P$ K4 o0 A' X* S* ^4 \; }4 E
- data: data
3 \* }6 m P- Y- ] - })
# Z( _! @1 K) C4 B. | -
+ i, m; N7 L2 Q" o - document.write(vm.$data === data) // true! E8 z2 q3 g, u% O" c
- document.write("<br>") // true% M7 H Q8 V) K; ~" B6 X
- document.write(vm.$el === document.getElementById('vue_det')) // true
. C+ b2 M+ h3 A) | - </script>
复制代码 % o2 u3 Q+ w$ @ J* H: t; D
6 I4 H$ P1 `# [
|