|
Vue.js 起步 每个 Vue 应用都需要通过实例化 Vue 来实现。 语法格式如下: - var vm = new Vue({0 Q2 \( m* b6 E9 ~$ U% k8 G
- // 选项
1 l5 {+ e. p9 q1 R/ y' V- m - })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容: - <div id="vue_det">, C' O: E8 w% q, g _9 Q1 t% {
- <h1>site : {{site}}</h1>
% ` U# w& n5 C1 O - <h1>url : {{url}}</h1>6 i0 _1 ^. O* Z1 H0 K1 Q
- <h1>{{details()}}</h1>/ I- o& J* ?6 x( j# _2 S
- </div>
/ n* l! e- \) d( i' B' I - <script type="text/javascript">
4 b: ~8 F' E# m - var vm = new Vue({8 C4 ] z6 r3 D" z" \ R1 c8 |5 t
- el: '#vue_det',4 t; B+ o. T4 ?, j0 a$ ]
- data: {
: Y5 Z* I9 U* S7 Q, |9 G2 n' L - site: "菜鸟教程",
8 R: X+ N, ~9 o4 D - url: "www.runoob.com",
2 p" ^8 e8 e3 D+ |2 X1 K - alexa: "10000"
& @0 a( C! S7 d - },
, T' Z9 B, c# v* \) f: I7 | - methods: {
" {$ h2 h4 V9 ?' E- b$ t: v. s$ ? - details: function() {1 a; |, A7 s) W
- return this.site + " - 学的不仅是技术,更是梦想!";: `' q) ] v$ z2 m
- }) ]( x1 ^3 m2 y0 k
- }
4 D; s6 z- C: a. S0 ~ - })
9 a7 r) V- {* I2 \! J0 w - </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">
$ { \$ s$ |7 ]+ X+ X" x5 C- g - <h1>site : {{site}}</h1>7 ~6 g6 c8 x' Q) O6 P
- <h1>url : {{url}}</h1>
8 m$ j, r4 [# |7 b( K1 s - <h1>{{details()}}</h1>
) _7 z; N* W6 V- a1 b: @ - </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。 - <div id="vue_det">: \: N/ a3 d6 l$ Q/ S. H( M# Q
- <h1>site : {{site}}</h1>
# d3 W5 e- D+ ~ - <h1>url : {{url}}</h1>
* Y# ~6 Q- I! \% Y. Z - <h1>Alexa : {{alexa}}</h1>) ~2 o0 G1 |/ R8 G5 F
- </div>& {& ~4 w2 A" a5 U; T7 J* H! h' d
- <script type="text/javascript">0 u8 K3 d2 {3 m; n
- // 我们的数据对象
4 j+ z& C# f+ \. r5 K0 _) d0 ]7 l - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
( e" _) B% m; R0 g6 ]0 J3 N' l - var vm = new Vue({
7 B/ x' x* ]- Z! P5 w7 u - el: '#vue_det',+ I, b9 P+ n' t5 C/ r# C1 O
- data: data
. u+ t2 m" q4 q3 U: ?2 p - })8 U( }' k5 ] {
- // 它们引用相同的对象!
: a+ w; {# W4 s2 m - document.write(vm.a === data.a) // true; G3 x ?9 ^2 i0 r& f
- document.write("<br>")% e& L1 L) ]1 R4 b% @' H& W W
- // 设置属性也会影响到原始数据
8 L4 `/ M3 X) ? - vm.site = "Runoob"
4 e* h$ B _5 R! z! i, n - document.write(data.site + "<br>") // Runoob
( o n8 F$ K9 G! z0 J: W: ^ -
$ C+ n W9 F; ~' }# A e6 S - // ……反之亦然
6 V2 f1 p7 _2 [1 K9 ?, Y - data.alexa = 1234+ p! i, a2 @3 X
- document.write(vm.alexa) // 1234
; ?, D7 v1 g& ] - </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如: - <div id="vue_det">
. r) g# \* d! ^* r - <h1>site : {{site}}</h1>
% d( [$ @1 ~8 Q# G; q - <h1>url : {{url}}</h1>
/ _; O$ g a2 [/ e8 v1 d/ Y* B - <h1>Alexa : {{alexa}}</h1>) m, U" P E4 O0 X
- </div>
! L. H( u" w2 j$ J0 v+ I - <script type="text/javascript">
+ t: M2 z1 R: E) R3 {' K6 y% j - // 我们的数据对象
6 p/ q$ v2 u8 S7 Z3 M5 W' c - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}4 c" B& m! ]' G( `
- var vm = new Vue({" m- l# q, |5 z( J4 L' d( i9 _+ [- e
- el: '#vue_det',
5 e' B, q9 h' x) @7 T. [ S - data: data
% l) U6 X- F/ s4 r; y& S7 b/ `. { - })
9 f/ J& `9 t& G) B! @# [4 U* d -
+ n# }4 ? q$ Q1 Z ^8 I - document.write(vm.$data === data) // true
8 Y: T+ l# m$ n: ~% z - document.write("<br>") // true
0 _3 w& I6 ~) S! R2 |) @ - document.write(vm.$el === document.getElementById('vue_det')) // true
4 k+ L' O1 T! B+ I' X - </script>
复制代码
' D+ Z" ?! l# A _9 b2 \3 P$ D3 |$ _. y9 A. z) i
|