Vue.js 起步 每个 Vue 应用都需要通过实例化 Vue 来实现。 语法格式如下: - var vm = new Vue({
2 W! a8 Y( j3 c2 t9 E& F( P# f9 X - // 选项; ^* A4 R& ~8 k8 a1 N# g+ @3 }
- })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容: - <div id="vue_det">$ h; T5 b" p% D
- <h1>site : {{site}}</h1>
7 K- H- F. O7 h( C - <h1>url : {{url}}</h1>
0 H. J8 b" {% \ - <h1>{{details()}}</h1>
& j' x, f4 N( `5 }$ p1 B- t - </div> o) ^( q: h6 |' Y
- <script type="text/javascript">
1 b# `% T! }- i) d4 S5 `; U& g - var vm = new Vue({$ | X/ v+ O/ _0 h" V; a3 J
- el: '#vue_det',
3 ]# z9 o. u+ R- Q2 O; F; Y5 V# I - data: {
. l. g& ?- g3 Y' D) M2 M - site: "菜鸟教程",
3 a, @& k) W0 _8 j$ O - url: "www.runoob.com",
, H' s `/ {3 s1 s1 u/ s2 l - alexa: "10000"
# x d6 l* }. m$ { - },
6 {3 e: D% u/ L7 I# o) f" D - methods: {
" O7 e+ R" n3 r - details: function() {# @: |4 b% `1 ?5 {) ?
- return this.site + " - 学的不仅是技术,更是梦想!";
+ Y) G# t7 g7 A, Z. H# U; S - }: G5 `+ v6 A% i& N, R
- }. q5 U9 w9 F4 i
- }): U# {" j( \; h1 ? z9 h/ H; L& v
- </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">+ K) {: F/ V7 E& G( e5 T% ~
- <h1>site : {{site}}</h1>
8 r: Z9 P. A* s - <h1>url : {{url}}</h1>: A: q5 C$ t+ c4 F) r
- <h1>{{details()}}</h1>3 A+ ~) T! z( E' S$ I/ U" O3 K
- </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。 - <div id="vue_det">) N+ S: ~3 U i4 n; a: h4 O ?% o
- <h1>site : {{site}}</h1>
% s2 }6 Y8 C9 a; O1 P0 ?2 ~' r - <h1>url : {{url}}</h1>
( ~+ }* F; S, @/ A8 u - <h1>Alexa : {{alexa}}</h1>8 u7 k9 W7 H. y ? [
- </div>2 n `% X# z) |- p* E# n
- <script type="text/javascript">) p+ L, V8 h# q1 y8 g$ U
- // 我们的数据对象
9 t5 O3 a" D5 V# M/ ?# f - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
, k0 ]0 n/ p! V; [2 w, y" g - var vm = new Vue({. B, I" A; i- _/ S! B( f
- el: '#vue_det',! Z4 `- p& e- J. j1 r* Q
- data: data
7 b! [2 _$ I6 t/ c6 e; ?; l - })& t6 O+ K$ U! x: N& O b0 o9 W
- // 它们引用相同的对象!
' A) h: l. y! b! R1 w - document.write(vm.a === data.a) // true7 K% H8 T0 M# w6 \" U
- document.write("<br>")
! e! U# I \( x2 Y* O - // 设置属性也会影响到原始数据
, {+ A- G8 N! o( G$ c; `( Y# x5 z - vm.site = "Runoob") m* Z1 A% p+ _. }
- document.write(data.site + "<br>") // Runoob
' k' t1 `3 z* i, { - ) A; R8 Z% p" p) w- v2 X
- // ……反之亦然1 l" l" }& i/ _# a
- data.alexa = 1234 q& I% u, j% ^
- document.write(vm.alexa) // 1234
& q" E1 t/ L5 l - </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如: - <div id="vue_det">
- _, n* c4 \# h, D - <h1>site : {{site}}</h1>, P6 b; o' h) `0 Q% ~$ l
- <h1>url : {{url}}</h1>+ |8 K( L* Y5 v' C0 s9 c
- <h1>Alexa : {{alexa}}</h1>6 {, m$ d3 D/ @/ x9 M; _
- </div>9 ^: r4 v( p, I; D
- <script type="text/javascript">. ^* [, B$ [0 O: M+ e
- // 我们的数据对象% B+ d! _' C1 q. @( _+ A1 ]
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}3 T; {8 [ u# _) U3 v" w
- var vm = new Vue({9 z% H( R9 i3 j6 s; `
- el: '#vue_det',% e$ W6 A% Q! u
- data: data+ X# u* h- C* P- `$ o
- })4 S) O3 m: N; u( Z
- & {/ q* ]- s4 I" w# j4 J" w6 f
- document.write(vm.$data === data) // true0 S2 V1 {4 r3 E/ x
- document.write("<br>") // true/ ^# O/ j7 m* C6 v, a
- document.write(vm.$el === document.getElementById('vue_det')) // true
) Y3 R. E& `- r5 c2 X5 q' X - </script>
复制代码 ( p' x1 F8 d8 w2 Y$ @4 ?' `% G* |
" R, [+ U* u$ |
|