|
Vue.js 起步 每个 Vue 应用都需要通过实例化 Vue 来实现。 语法格式如下: - var vm = new Vue({
" W, l4 b4 y' Q$ |8 }9 @8 l+ p - // 选项
5 L) o* Y0 ~( @2 v. {7 k5 ]" P7 ~ - })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容: - <div id="vue_det">% P! f! x7 }% n5 e- S: Q; t) ]
- <h1>site : {{site}}</h1>4 V# n2 c4 G7 ]5 I- e1 W- b9 N
- <h1>url : {{url}}</h1>& C* p# x1 x1 J! j) Y) Y1 g
- <h1>{{details()}}</h1>
4 }0 Z4 O) B" ?) f- t2 G' L! w& e - </div>
: ]6 g5 [! n) {9 w3 S - <script type="text/javascript">
3 u& A! P( a$ N - var vm = new Vue({
! G4 ^/ F+ F. x; ]$ z - el: '#vue_det',/ F; q4 I5 w* r1 }, q' f! M6 P% R
- data: {
( ?9 I+ R& t3 Y3 Q" K$ E) o - site: "菜鸟教程",
7 K: z6 y* R0 S- _% o- Y$ P! S; C4 d - url: "www.runoob.com",
' Z! s+ [: q A7 o6 ^ - alexa: "10000"
8 c; ?/ h7 l+ K. k+ X" n0 Q - },
M3 l, Z8 Q' {) U$ | - methods: {
7 C0 |. D' P9 i! }2 _5 Z( h - details: function() {1 d! D% D; c( T
- return this.site + " - 学的不仅是技术,更是梦想!";* z% I* n0 q! I5 d1 z; J2 ]/ O# T
- }
! f" D8 T" Z, M; i: v9 { - }
; |. m- h9 Z2 g4 H* e - }). ^9 X4 x1 ? w( T
- </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">
: F/ g1 W0 l* u$ C) I - <h1>site : {{site}}</h1>
" W( M- N" k' [8 ] - <h1>url : {{url}}</h1>- h6 T0 i: o' C
- <h1>{{details()}}</h1>6 n# `4 O+ L. ?9 }3 ^
- </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。 - <div id="vue_det">
: C0 K( t6 ]+ m* q; u) ?" d+ B - <h1>site : {{site}}</h1>
1 f1 s) c7 J1 n, P9 J - <h1>url : {{url}}</h1>
$ h) \4 c4 D8 W8 X0 U - <h1>Alexa : {{alexa}}</h1>
) `' I+ r0 I1 c - </div>3 q8 }8 ]* ~' E- B
- <script type="text/javascript">: @8 A0 e; T1 v
- // 我们的数据对象7 K, ], w" ?1 J9 S
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}2 n4 F4 x4 U' @( h+ g
- var vm = new Vue({
* {- B! N( y8 x7 o- ]* n, d - el: '#vue_det',
3 r7 y" V8 y4 Q" J - data: data
! L! o4 T: C! @9 [- t - })
4 [! B5 \; N' N4 u - // 它们引用相同的对象!
, _7 i% G' U2 `6 x$ l4 [ - document.write(vm.a === data.a) // true
7 i+ j' u8 F H0 z; r - document.write("<br>")
+ ?7 t3 \1 P; | - // 设置属性也会影响到原始数据( S; b& c$ a, b4 I2 l& ]
- vm.site = "Runoob"
) `! N7 R) l' y. J' P/ y - document.write(data.site + "<br>") // Runoob
: w7 a& N7 S6 f: M! ^" G - 1 g% ^% l( M' ?" J) g$ m7 b
- // ……反之亦然! N2 h& N. Y% P3 x5 b- n
- data.alexa = 1234- A6 F) ]) k) [" o& X/ W" @" U
- document.write(vm.alexa) // 1234( [! g) A* G$ r2 Z& I3 ?1 ?
- </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如: - <div id="vue_det">
4 ^2 p2 U4 D: b Z: ? - <h1>site : {{site}}</h1>7 Z C) T2 B4 T4 X' d
- <h1>url : {{url}}</h1>% ~- j& q9 b T3 ?
- <h1>Alexa : {{alexa}}</h1>
9 ]: A( Q; L: Y' S: w1 I$ t) Q# O - </div>
* w5 F' R* G! N - <script type="text/javascript">5 A8 O' G6 q2 `+ m
- // 我们的数据对象- f7 g2 w/ w* @% B. v! J/ k
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}' t8 T& g# q, H1 @' E/ l# @5 H) _2 C
- var vm = new Vue({
& N* w; b# Q- q* e6 u0 }5 \ - el: '#vue_det',
4 j/ F+ X, u( r. t" w' Y# P - data: data4 V4 [4 h0 [; }+ ~
- })8 x& k* F5 G3 r5 |9 n6 Y8 c/ Q
-
5 q% ?- Y7 f# F/ l5 B7 ? - document.write(vm.$data === data) // true8 V3 O5 J1 `2 u9 _: Y
- document.write("<br>") // true d3 U) b# ?/ n
- document.write(vm.$el === document.getElementById('vue_det')) // true
( E: E1 [1 {3 E- s3 e( O8 b - </script>
复制代码
! S, }# [7 }& N0 ] O1 f8 k0 X5 Y8 U
|