Vue.js 起步 每个 Vue 应用都需要通过实例化 Vue 来实现。 语法格式如下: - var vm = new Vue({! W2 s2 ~* o' E: e7 s) b$ k
- // 选项
5 k: X' E. B" n" D$ K) J7 A+ o - })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容: - <div id="vue_det">5 A3 |4 e9 A% {4 n# b m# K
- <h1>site : {{site}}</h1>
Y. ]4 n9 a( j* O) u% B - <h1>url : {{url}}</h1>1 ?- @# u# m$ b, L- S
- <h1>{{details()}}</h1>
" x3 j5 I/ Y% [3 {; G$ @/ V% [ - </div>
3 N n- X9 D6 N& g# g - <script type="text/javascript">6 N( y7 ~, p; W1 A0 f$ o2 H0 X
- var vm = new Vue({
. h9 k' S$ v0 x: Q8 P1 [% Z! w2 R# C - el: '#vue_det',- n. K5 ]. \3 o, l) t* F
- data: {. U! U: X, ]3 ]1 v; j( w
- site: "菜鸟教程",- n: C0 y& h Z D8 ^% A5 r! m
- url: "www.runoob.com",
1 V/ ?) X! e& r# |. r2 C7 q+ I. ^ - alexa: "10000"
& e# R' L/ {# s, P - },
8 B- |$ F: Y" I9 D - methods: { M: n6 Y$ Q$ x1 }6 @
- details: function() {. J% ?1 U" \8 _$ c- ]4 d9 I |" z
- return this.site + " - 学的不仅是技术,更是梦想!";
' i O( J1 e7 j0 t7 ]1 o: H7 f - }
6 ]/ y9 u' E: q3 }3 T$ [* h - }4 O7 _* x+ i' p$ z; Y
- })2 V6 N I8 @6 R! |" 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">. Z+ X8 e p9 a/ f; @
- <h1>site : {{site}}</h1>
4 b! _, k3 c8 ^4 f! L. r3 D: a - <h1>url : {{url}}</h1>$ b6 P. U- R) s! r4 I3 B. X
- <h1>{{details()}}</h1>
3 y* Y0 J* ?' e) G! v, Y) P! M' [ - </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。 - <div id="vue_det">/ m* @# d6 _. i
- <h1>site : {{site}}</h1>
# i! k- E% l- r. F: V/ h - <h1>url : {{url}}</h1>% `$ q( w B! e: B2 S; b
- <h1>Alexa : {{alexa}}</h1>
: c, Y, V7 |. S/ O9 V7 l/ ^ - </div>8 v1 A. U5 k0 @; ]+ j. Q/ N
- <script type="text/javascript">
) Q) g2 X" V" t' F7 a x' e - // 我们的数据对象
( V7 e: b6 a7 W+ \* o - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
0 L/ a) ` O. [6 P8 c" x7 f - var vm = new Vue({& r- c5 E2 J- P
- el: '#vue_det',$ M/ k4 v9 V4 k* r
- data: data. }* B5 @' C1 N" ^* I
- })
{+ D1 O+ B" I/ b: c# X - // 它们引用相同的对象!
( G9 ]7 t6 x: F - document.write(vm.a === data.a) // true2 Y# R, O6 ]0 ^7 m5 R8 h% o3 w
- document.write("<br>")
1 }0 j3 R# z9 f6 k9 w0 c - // 设置属性也会影响到原始数据5 w0 y: i- s, N& A( h7 J) B
- vm.site = "Runoob"8 J6 P- f9 C% w1 P5 F
- document.write(data.site + "<br>") // Runoob
+ C* w, m3 `6 E: h6 `9 X$ H - ) u9 r$ ~5 P" b6 s1 j
- // ……反之亦然* Q# l4 p9 t; M9 j
- data.alexa = 12343 l, }4 F& x7 E
- document.write(vm.alexa) // 1234
( I8 T3 @6 U1 v4 S/ A) q, Y - </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如: - <div id="vue_det">" ~3 w9 L* b# Y. Z5 x0 b0 s. V
- <h1>site : {{site}}</h1>! N' v, k3 d3 g' _: F3 [
- <h1>url : {{url}}</h1>" R, b4 X0 S) i/ o; Y+ R+ B
- <h1>Alexa : {{alexa}}</h1>8 g2 K6 n( x. P! R7 q+ v
- </div>' `2 n4 G! \9 q: m( t
- <script type="text/javascript">1 f3 E0 {# U: s( Y
- // 我们的数据对象1 l2 ]( {% i( j# y. o5 |
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}, ?2 t. J: Y2 m
- var vm = new Vue({
" B: c+ @" O/ E( r1 k2 [2 C" X- \ - el: '#vue_det',
4 E v$ k }; c - data: data
' A/ q2 ?) q, ^; e - })0 v8 `8 O5 J b: s2 ^' E
-
, m; R! `/ l, Q7 @, B7 ? - document.write(vm.$data === data) // true4 [. @. a2 z6 v9 V
- document.write("<br>") // true# I4 j& L& Q8 V! v/ G7 _
- document.write(vm.$el === document.getElementById('vue_det')) // true
' |( X, F. Y3 O - </script>
复制代码 ) h! A0 l* [4 g$ Y/ m3 e
" s& Z6 d8 C( w) W
|