|
Vue.js 起步 每个 Vue 应用都需要通过实例化 Vue 来实现。 语法格式如下: - var vm = new Vue({
k5 Y6 W# }7 }* \" p8 b5 W8 q - // 选项1 M- o; ~0 d8 B; g' y7 }% O
- })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容: - <div id="vue_det">1 m6 x4 N2 j& m$ F# P
- <h1>site : {{site}}</h1>/ n" f$ E3 p6 @$ E, y' _
- <h1>url : {{url}}</h1>& K5 h$ \8 u, C( V4 S( F* \4 `
- <h1>{{details()}}</h1>
9 l ]( p d0 B3 a+ ^ - </div>
: y9 |' J2 l# @" V, P" g- F - <script type="text/javascript">' D8 n. {6 ^: L2 v$ K* S
- var vm = new Vue({4 B( k/ \+ V1 d# A- S
- el: '#vue_det',
7 F( Y, M6 x7 U6 I8 V% d - data: {
" C- F8 f' o% ~6 f - site: "菜鸟教程",6 N" g+ u* y6 l- c# c5 X/ `
- url: "www.runoob.com",* r6 ^+ T: \/ `/ k2 l
- alexa: "10000": c2 E1 }% f5 g
- },, K' @! d: T+ U Y& ?' U
- methods: {
; |1 U- o. @2 f/ ]' l& Z - details: function() {' V, j9 N$ A. J* v. I( N
- return this.site + " - 学的不仅是技术,更是梦想!";6 l# x, Q( c# O6 o/ ~+ N2 ~: w
- }
3 Z" p5 ]# i" o7 d7 O8 f; t. d* G - }. c2 C) f2 P5 `* n; V O) x
- })2 z. e- A3 _+ |4 H" G+ q" {+ V3 J) I
- </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">9 H$ N* G8 ?$ F/ C* v7 `9 t- I; G, L
- <h1>site : {{site}}</h1>
, r7 _. V. o& x' b - <h1>url : {{url}}</h1>
1 N5 S4 p3 L. K. k% a( R0 | - <h1>{{details()}}</h1>) d& K [) E, V4 S1 k
- </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。 - <div id="vue_det">
; P, g5 T; w: k+ ~& H - <h1>site : {{site}}</h1>
, I7 x5 ~/ _9 G3 } - <h1>url : {{url}}</h1>$ O1 z) ?9 z+ }2 W6 x
- <h1>Alexa : {{alexa}}</h1>2 S4 V& S8 V( X+ t' _
- </div>
9 Q+ M9 x1 x/ k$ ? - <script type="text/javascript">3 ~+ I; l, D0 K
- // 我们的数据对象
) Z! u/ k- E6 v$ C! @2 D6 @9 P0 V+ M - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}) `' h3 A) A( b1 ]1 f7 q
- var vm = new Vue({9 r9 {: O7 n& p" q* W
- el: '#vue_det',
" e( r B% p. X$ a4 x* C2 X6 M5 i/ E - data: data. R! Y5 i( }: h5 ~
- })( b+ q) a5 }( G* s/ l* m( O; e1 [
- // 它们引用相同的对象!4 Z& X9 O8 D- s2 m* }
- document.write(vm.a === data.a) // true: l3 d3 r+ ?: o. @* d0 D/ @
- document.write("<br>")& l! T4 ~4 u# P3 @7 L; x
- // 设置属性也会影响到原始数据/ D4 R6 x* m0 X A
- vm.site = "Runoob"
_% c. e; L( L - document.write(data.site + "<br>") // Runoob
8 a- D4 p/ K3 |2 ? -
( {+ i7 v" b6 |7 K8 ^# [ - // ……反之亦然2 f" n# [5 b; I3 W9 d/ ^3 }
- data.alexa = 1234. ]$ u( A0 ^) M8 i; d7 x* V
- document.write(vm.alexa) // 12343 F5 [, t. A: [, a% i
- </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如: - <div id="vue_det">
" {. H! x( a& p! A! [) { - <h1>site : {{site}}</h1>6 y, d; k" \9 @9 Q8 T
- <h1>url : {{url}}</h1>
8 Z* Q6 s% F6 F8 g2 J2 L( _/ ?2 q - <h1>Alexa : {{alexa}}</h1>
- R7 P x+ n: k. j - </div>5 I: r, d$ Y/ ]6 s3 B ^/ \4 U
- <script type="text/javascript">
2 g! V3 {, f1 ~. E, s, D8 v4 m' B7 n - // 我们的数据对象$ \0 E; j8 z8 j# s3 V7 y) Q; H5 [$ _
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
5 b- O( Z. y$ u7 V - var vm = new Vue({
' K7 B' T3 Z6 N9 w - el: '#vue_det',
. c# f) e' s) o& T4 o: b - data: data2 w S' I7 J# P
- })
; h' r9 J2 P$ b4 ` - : \' N% {9 x* `' |8 l
- document.write(vm.$data === data) // true
; Z/ }. b* Z" ^$ l0 B1 {5 C; [ - document.write("<br>") // true" a$ H# h6 Y* \; ^ q3 \" r
- document.write(vm.$el === document.getElementById('vue_det')) // true
' M/ I4 m+ B- {7 K/ _ - </script>
复制代码 o) J; S* J4 i! ~+ F2 T: g* E, G
# f9 q% g: W" D6 ?% H, j k' \ |