Vue.js 起步 每个 Vue 应用都需要通过实例化 Vue 来实现。 语法格式如下: - var vm = new Vue({
" r% F. ~2 Y4 o- e - // 选项
& @( u% c3 j8 a$ g |4 j( b8 d - })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容: - <div id="vue_det">2 W m; [ T3 m, ^) h! k; z& v9 l [
- <h1>site : {{site}}</h1>; y& W" L- u' @4 F# {; R
- <h1>url : {{url}}</h1>, W2 r% H4 |0 j# \
- <h1>{{details()}}</h1>$ S, E' o4 T- ]6 R
- </div>
& J& K& \/ {1 d9 o& ^1 J - <script type="text/javascript">
' A7 c1 `* T& C0 p - var vm = new Vue({
# G3 u0 I( Y6 [! J1 I4 P - el: '#vue_det',
) ]2 P( C; O# s1 L0 @# n6 x$ l) Y - data: {6 T. a, T$ E) Y; I0 r
- site: "菜鸟教程",
& Z1 D; r& ^, L5 B- y - url: "www.runoob.com",% }" E- f, x: s
- alexa: "10000"
1 j- s3 O1 {% Q: o0 R - },% f7 N# Y" d0 R; M. S* p3 T
- methods: {
, n+ @7 s+ ?6 ~. b4 A) V - details: function() {# |, V5 ^2 i$ s6 N/ i
- return this.site + " - 学的不仅是技术,更是梦想!";4 k; B( L: @! N: _4 u* P/ _$ d/ W
- }2 V9 u/ V, P7 {0 Z# ^
- }
4 g% E6 R8 y1 Y+ c) c - })
: b; h3 [: }! t) j5 y - </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">; M8 z& n% Q0 |. D# O( {* X' A
- <h1>site : {{site}}</h1>8 w u" C7 R( P" m, q, ^% N& Q3 R
- <h1>url : {{url}}</h1>
{2 l: N% {4 e8 ~! ^* q8 o - <h1>{{details()}}</h1>* ?" |3 b! l* d* o# V2 M
- </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。 - <div id="vue_det">" @( h @2 g$ b. d
- <h1>site : {{site}}</h1># ~* O; g( r& ~
- <h1>url : {{url}}</h1>
6 X! y- |& r: y& h" a2 f - <h1>Alexa : {{alexa}}</h1>
: y( `' n6 D1 h$ @; g - </div>/ K5 C! i: x5 `1 m6 p$ \
- <script type="text/javascript">
$ d( E" s; ~6 u! P& }. K" B) ?1 r+ @ - // 我们的数据对象
) J7 n; s( {0 @3 w9 J - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
4 W" e7 f: O% }0 h0 e& | - var vm = new Vue({
7 S# [3 P4 d5 m* P6 M6 ^0 r - el: '#vue_det',7 k7 w8 N6 o" T
- data: data" K1 h: J p7 g: m- T
- })% T9 | w! l I/ l# H
- // 它们引用相同的对象!
! o0 L' Z3 {+ C. I! ? - document.write(vm.a === data.a) // true/ I, H. q7 R1 {" c# A* g$ \$ ]
- document.write("<br>")1 Q3 \, Y7 V+ k* f
- // 设置属性也会影响到原始数据
+ C" Y3 q& O% k - vm.site = "Runoob"
( P6 m3 H% s6 Q' R$ A9 v - document.write(data.site + "<br>") // Runoob8 }! Q5 ]0 M, n
- ~' w" |& ~& i
- // ……反之亦然; Y: y m( v& K5 I( N9 h
- data.alexa = 1234; T% P+ I) ?. v
- document.write(vm.alexa) // 1234/ E0 `8 h+ x/ D2 C5 H
- </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如: - <div id="vue_det">- R6 {6 _6 U* B& S) Y, U& Q
- <h1>site : {{site}}</h1>
; }: Q$ s9 |/ k$ T( V/ l - <h1>url : {{url}}</h1>
* |5 T+ y4 T. j& x - <h1>Alexa : {{alexa}}</h1>8 I" h& {; R$ M/ a6 y$ x. k, F
- </div>% ^4 k; F. J) v# N( m
- <script type="text/javascript">
7 ^+ C7 X( Q2 N6 N/ p6 H5 Y, V - // 我们的数据对象8 L) z- Q6 |7 d5 z- T
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}, p O' q1 V8 P5 R5 {6 _
- var vm = new Vue({: z, q8 ^! k/ q k6 h# |9 O
- el: '#vue_det',' P+ R3 h; @' I
- data: data' r, b" l9 P) ^/ S
- })
+ k) J9 n6 s, a4 s* |4 D -
4 J$ k. a* Y! l& A+ Q4 }, [5 o - document.write(vm.$data === data) // true% l5 ?5 h: M% E
- document.write("<br>") // true) o) A& a9 j' q, ]6 Y
- document.write(vm.$el === document.getElementById('vue_det')) // true
/ S; |" J" e7 p0 R% j X' R - </script>
复制代码
5 k# O0 e C1 i% m" Y6 o$ m; F/ [3 U8 l3 D5 c) p$ G! F1 ]
|