Vue.js 起步 每个 Vue 应用都需要通过实例化 Vue 来实现。 语法格式如下: - var vm = new Vue({) H$ T9 |+ ]3 e, N Z3 _
- // 选项
# V4 E/ ~8 R( Z" o$ ?" @ - })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容: - <div id="vue_det">
2 Y& r3 N% V$ G9 ? - <h1>site : {{site}}</h1>
. U4 J" C' C% D1 F- Y - <h1>url : {{url}}</h1>& t) Y. w, P1 l
- <h1>{{details()}}</h1>5 Q5 P' Y) ^/ ~; M! @
- </div>
7 ?9 a0 `1 w! Q& X5 x - <script type="text/javascript">
4 e, u5 n3 U# W+ v& L9 W - var vm = new Vue({
! S# n {" S& q, i - el: '#vue_det',% V* ~ u. h6 f% J8 |- G( V
- data: {
3 Y* t, Y+ `$ y5 ~+ s9 E* Z) F - site: "菜鸟教程",
, ^7 R) E8 k9 M4 y - url: "www.runoob.com",: N( d, x1 [1 r
- alexa: "10000". q+ W9 F8 O6 _( @1 v
- },9 u0 _3 e& p3 U; N9 \# O# u* e
- methods: {
% [0 [% i( X' S6 }$ T X2 b0 Q! U - details: function() {3 E. ], I$ o$ L0 P/ J5 i8 V
- return this.site + " - 学的不仅是技术,更是梦想!";0 u0 E2 j7 E1 O9 ]- K# d" S3 x
- }6 e7 O" I; e1 s2 H4 U" ^
- }
$ }! r# Y3 k- C2 X% Y6 ?2 s - }) p) Y* \' Y) R6 s
- </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">. J4 n( _3 P5 @ \& G1 Z' U9 P
- <h1>site : {{site}}</h1>6 S* {; m5 ?4 s8 i* k ~5 v# f
- <h1>url : {{url}}</h1>$ h- T$ M1 {. Q% x
- <h1>{{details()}}</h1>$ o6 p3 W) I: J5 M) F8 m
- </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。 - <div id="vue_det">
1 q; r, g4 O2 H - <h1>site : {{site}}</h1>
) R: w" m2 g( g. Z6 _) e, O* e - <h1>url : {{url}}</h1>
: v8 ]' N9 w. ~! N. u! p - <h1>Alexa : {{alexa}}</h1># m% s! q8 l) `' b
- </div>) b* U# |$ ?* L$ I# Y. P& U
- <script type="text/javascript">
6 D1 `2 ]# V+ Q. _6 @ - // 我们的数据对象
n/ B4 O* [& r) @! `7 b: S7 \6 B - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}0 a4 w( x8 P; t% \ F
- var vm = new Vue({$ p7 b* @! K* u7 A/ |, `. v5 f' ]; S
- el: '#vue_det',! F0 _: P4 [- e2 I; E# {! l
- data: data% t2 u6 o6 ]3 `
- }). u) Q# w, l4 I/ j/ i
- // 它们引用相同的对象!
$ Q' M3 ~7 ^4 O4 |5 w2 k! t8 e - document.write(vm.a === data.a) // true9 K8 @! s( H2 }; D, S; w$ ?
- document.write("<br>")
" \' P' h* W) J. L, g, k - // 设置属性也会影响到原始数据
6 O: Z0 @9 w' W+ D - vm.site = "Runoob"
! {- ^/ }$ R" Z! R* @9 u - document.write(data.site + "<br>") // Runoob
4 e, G5 _& ^( ]8 C; s+ {6 |$ ]% I -
- Z' k. F" j) i. l' N2 w - // ……反之亦然4 @- _3 o3 D6 D
- data.alexa = 1234
0 Y" y0 l1 W% W1 w6 b7 L4 ~/ P - document.write(vm.alexa) // 12342 K q+ D9 Q* U; E7 k! m/ D) J
- </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如: - <div id="vue_det">
! Y& n$ O7 A4 Z; [ - <h1>site : {{site}}</h1>
7 q" |9 X. F% g$ W! ?8 ? - <h1>url : {{url}}</h1>
( Q4 [6 l! e! A1 Y9 L6 d8 V - <h1>Alexa : {{alexa}}</h1>
7 G2 I6 m% T) `- w3 u) h& } T) D - </div>) O0 C$ c- F0 A) B4 d) p8 |
- <script type="text/javascript">4 ~% w5 D1 U+ U1 f1 u
- // 我们的数据对象+ J. G$ t% g: h5 @# j- A
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
4 n/ r K0 ]: X. a6 j l/ l - var vm = new Vue({
1 ^' |$ h5 D$ i7 X - el: '#vue_det',
) R7 x' D. r c4 ~' P ` - data: data( O {2 |2 `' g3 i' I/ L2 v1 l7 p4 Z
- })
! e6 P8 d9 T8 O7 E2 b" B - + i) K. F/ n; p2 H" H7 {
- document.write(vm.$data === data) // true
7 G$ [. f) h, ?4 a - document.write("<br>") // true6 g) B A2 p( J' L
- document.write(vm.$el === document.getElementById('vue_det')) // true1 @5 h( p: F; \: E$ a5 B4 k1 K
- </script>
复制代码 2 T! R: M e; B, s
* y# h0 r/ ?' k% r9 s* |$ ~- d
|