Vue.js 起步 每个 Vue 应用都需要通过实例化 Vue 来实现。 语法格式如下: - var vm = new Vue({) B. I/ x! |% X) l
- // 选项
$ x/ t# y1 ]( s - })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容: - <div id="vue_det">
& p0 r, l c8 o5 F0 x$ H' H6 \ - <h1>site : {{site}}</h1>
0 K, X/ D: ?% W6 }) ] - <h1>url : {{url}}</h1>
6 L6 j- Z1 i* F6 Y - <h1>{{details()}}</h1>( I8 ?0 @7 _# \3 q
- </div>( Q7 D4 N% x# h/ u4 l
- <script type="text/javascript">9 H+ u/ @ v+ M6 G% H* m4 ]9 y
- var vm = new Vue({
& w% p* N( I+ K6 }) P: N* G+ p! { - el: '#vue_det',
8 E/ y% A/ w6 |% E5 z @ - data: {
; B2 a6 @2 M' P$ f - site: "菜鸟教程",
B' y2 L% ` @2 l5 g4 A4 W4 ^ - url: "www.runoob.com",2 w1 K' {- }8 }$ j
- alexa: "10000"
" T0 L& J% z8 q" c' E - },
! n$ d3 s: G. {: u# _$ K+ R - methods: {5 E# ?" c. j5 [1 o: O
- details: function() {' k( X; y6 Z0 t; K' }3 _ u9 F% s# i
- return this.site + " - 学的不仅是技术,更是梦想!";/ z" C- r( K6 v( T7 \
- }
: \. P7 Q! k5 L8 | - }
- h/ m7 ]) U! ?0 _0 P: ?) e) L - })
( i- O3 P( Z1 O1 n - </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 M7 d% Q( r. A0 m* C - <h1>site : {{site}}</h1>. A- n5 t2 x; l: ?1 ?- q
- <h1>url : {{url}}</h1>
; k) } v7 E9 e3 p) ^8 m - <h1>{{details()}}</h1>+ ?+ G( ?& G) y5 m9 U* {
- </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。 - <div id="vue_det">
3 ?4 T* S- Y1 N; @9 d' L8 ^. J - <h1>site : {{site}}</h1>3 C' |* _5 K4 x/ x- I, z6 E3 Z
- <h1>url : {{url}}</h1>. N5 o9 c4 O1 |" X8 E% d @
- <h1>Alexa : {{alexa}}</h1>0 ?) k6 W* _+ U% l; s: {& @5 t$ I
- </div>) [6 A( z. r* L) ^% e
- <script type="text/javascript">1 ^8 S5 e( |& a/ b# i( o1 t8 ]
- // 我们的数据对象3 j( N" l' ^7 |2 q: j' q' D+ `* V! M
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
" {* \+ ~3 M" o+ o4 i& ?) e, V - var vm = new Vue({
: l: Q# R$ _' a n - el: '#vue_det',5 R4 K1 T- y0 k' e
- data: data
8 \8 u2 Y) ~' J7 `, ~ - })$ ?8 V1 l+ A* g8 j O
- // 它们引用相同的对象!5 [4 K# M' I! P6 m
- document.write(vm.a === data.a) // true+ X4 v" `( u8 Y, K3 l |
- document.write("<br>")4 W3 K& x; C9 g5 g
- // 设置属性也会影响到原始数据
4 V8 c6 `& h6 Z4 n1 N6 w - vm.site = "Runoob"
1 e' N3 K* y9 Q: `1 r - document.write(data.site + "<br>") // Runoob4 m$ n# v* W) j; Q8 j' E
- % p+ ~: h) V5 |* L% }1 `
- // ……反之亦然1 y! E) y; v; z, [" i
- data.alexa = 1234& A% T. _3 T9 B2 J4 Z) ^
- document.write(vm.alexa) // 1234% V+ d F. P6 k) @6 G' Z$ ~
- </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如: - <div id="vue_det">
6 A$ X. T* V6 @# G - <h1>site : {{site}}</h1>* o9 `% \" j7 J% `! e' f. S+ k
- <h1>url : {{url}}</h1>
! r8 @, C2 Q8 v# n - <h1>Alexa : {{alexa}}</h1>
4 x) I$ R- p; q4 R, }1 @ - </div>. ?! O) ^1 L- C' Y8 Y8 ~
- <script type="text/javascript">% P) P5 K+ y* o& Z O/ Y* P1 ^
- // 我们的数据对象
# I4 ^ a, E. l; T+ ^1 A! e - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}, z7 s% A. y7 r+ O3 S) o
- var vm = new Vue({
# u: N: h* r! Z* J - el: '#vue_det',( n( `% f+ a- J* l Z
- data: data+ I& Q" g1 O* h! O9 b
- })2 |1 N; `# k3 Q5 _
-
# B4 ]* x: w4 H - document.write(vm.$data === data) // true
`, }5 e; a* I* s& ^& u - document.write("<br>") // true' N+ @: X8 v, Q! h7 E5 @0 G
- document.write(vm.$el === document.getElementById('vue_det')) // true) K! X" S* X6 v- T4 V
- </script>
复制代码
n$ j Z$ |2 y
# J" Y$ ^; a& D1 N8 d6 a5 W8 J |