|
Vue.js 起步 每个 Vue 应用都需要通过实例化 Vue 来实现。 语法格式如下: - var vm = new Vue({
& z$ G0 {) ]$ l0 }3 w! h4 M - // 选项: ?0 @" M3 y; B3 a1 \
- })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容: - <div id="vue_det">
+ W) ^0 v8 r8 g. T( h - <h1>site : {{site}}</h1>
6 R* U, C) G, q) |; y* w# N, D6 ] - <h1>url : {{url}}</h1>
' Q. Q/ B& g% u) N% i - <h1>{{details()}}</h1>" k; z' {; ^7 ^7 H% O6 S8 Z$ H
- </div>
! _3 n4 K2 u5 F( I! r - <script type="text/javascript">
+ m0 [5 W$ H6 h9 [: _' |6 T! g - var vm = new Vue({
* M7 _: t/ Z, f - el: '#vue_det',' V6 n6 F% o8 L5 P+ [* P
- data: {
4 n6 @9 F7 @6 [8 x8 v. I' I - site: "菜鸟教程",/ }; E& T. f; k4 F1 _* S
- url: "www.runoob.com",
. o4 s9 _& }1 F* Y1 L2 g/ a; ~ - alexa: "10000"
% l( @* V& M+ V* s( a* }; H - },: {" H5 Z+ O) U7 B3 Q
- methods: {
( f3 K) F2 z4 T1 M9 I2 Q) ^' @4 u - details: function() {
- o0 u5 i+ A- Z - return this.site + " - 学的不仅是技术,更是梦想!";
/ q" j& I% k& J: ? - }$ X8 J) C/ B& w0 M8 F
- }( a8 C; p% B0 o( |2 I+ a
- })
* U& L# ]" C" H: F8 b z - </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">
4 B: _4 m! Y' `; ^' H- U# q3 t - <h1>site : {{site}}</h1>4 D' `+ I% s" @. J, J& z
- <h1>url : {{url}}</h1>* {- O" e9 \- |- v$ p
- <h1>{{details()}}</h1>
8 d' ~1 F# o3 b5 o1 h0 q - </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。 - <div id="vue_det">* p6 Y4 m% I' i# c' O" ]
- <h1>site : {{site}}</h1>
! q, S) C2 k' D# {* i+ h - <h1>url : {{url}}</h1>5 l% X; s5 R: L8 s9 n
- <h1>Alexa : {{alexa}}</h1>% ~/ i) W: U& x7 ?+ S5 P4 {, ]2 y
- </div>
6 t+ `" i2 r; z8 Z% B# y8 q - <script type="text/javascript">7 U( p' h* [/ N! m1 I
- // 我们的数据对象. q8 }6 l/ Y* L
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
+ ^* j# T1 i1 v- W% S - var vm = new Vue({
0 j [5 S2 [3 n8 f! } k - el: '#vue_det',; _, k9 n+ b4 N% O3 r- V6 r. h
- data: data ~6 Q2 G% o D
- })( s+ W2 u4 T3 r1 Q
- // 它们引用相同的对象!
* d$ O$ W- p3 M$ W& W - document.write(vm.a === data.a) // true* F+ F7 Y) O8 c. f. O
- document.write("<br>")4 h7 c( r- ?- s
- // 设置属性也会影响到原始数据/ ~" S, v! O9 L
- vm.site = "Runoob"/ K( _& R3 p9 V. {/ O
- document.write(data.site + "<br>") // Runoob
0 i1 Q/ L& b6 o6 H+ b, ^ -
, l3 C( [4 z5 o C% W; r - // ……反之亦然9 W+ z9 s. w0 C! F$ z h
- data.alexa = 1234
V" ~1 d4 f; b- w* e - document.write(vm.alexa) // 1234; n P, x, j! a8 ]5 [' X
- </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如: - <div id="vue_det">6 [" ?+ @% @- T3 |9 t0 z* F
- <h1>site : {{site}}</h1>8 ~3 ^" E1 V3 G1 B, B: _4 ^6 t
- <h1>url : {{url}}</h1>
7 {+ o" B. s' ~% q/ K m: V- U3 J, J9 I - <h1>Alexa : {{alexa}}</h1>
% D) w! `/ e' f+ i - </div>7 Q3 M5 X6 t2 E O' s9 L
- <script type="text/javascript">
0 {! i9 i* l* R* p5 O- o" q - // 我们的数据对象# q0 L) ^- C: Y5 c
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}1 c9 x6 @" Q R8 H( x- I/ N
- var vm = new Vue({5 u; J' Q( Z2 P5 v: h' u7 B
- el: '#vue_det',% f. [9 t% l! e% \
- data: data
' ]& B9 e/ k- O" G3 w% |/ i9 f; U - })
( a8 R+ E# {6 B4 W+ N - ) b- {; w% V1 l W" V
- document.write(vm.$data === data) // true+ b3 O4 d: @/ V& I
- document.write("<br>") // true
: ]6 ]. \& h4 s* s) @/ x' t% r - document.write(vm.$el === document.getElementById('vue_det')) // true" y7 I c- `5 Y2 j( K) g+ V
- </script>
复制代码
1 b! [* S& a6 d( `: M0 t' Q5 Q1 `( t
: D, i1 b- m" g* y* ~" r1 E |