|
Vue.js 起步 每个 Vue 应用都需要通过实例化 Vue 来实现。 语法格式如下: - var vm = new Vue({
8 U y4 _" w! M; n - // 选项' o1 |5 m5 w/ e, d2 }3 M
- })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容: - <div id="vue_det">
4 g) j2 H3 d7 {/ R - <h1>site : {{site}}</h1>
7 f/ X9 Q5 E; q2 v0 F - <h1>url : {{url}}</h1>. s2 ?7 f6 i7 `* q# R2 o' d7 _$ A
- <h1>{{details()}}</h1>
2 T+ m2 z9 ^ f ?2 X0 v - </div>, T* P5 Y+ I- x0 p1 f- ^+ s
- <script type="text/javascript">' b' D5 U! Z% Q/ l5 }: l) Q# }9 P: z" ?
- var vm = new Vue({
+ L O( E a: U8 Q9 s! @' i" z - el: '#vue_det',( c) Q0 y5 D1 l( C
- data: {! M2 k+ L4 l4 R& M1 e
- site: "菜鸟教程",
: Y0 c3 G1 r: D3 U% \9 N - url: "www.runoob.com",1 r4 u7 f; M; n! [2 Q/ X8 j
- alexa: "10000"
5 p0 s6 [4 v: w8 k# {& B- A! h - },
3 n' D# D% G$ {/ a" u7 s5 K - methods: {) }' \2 w' t3 C T8 |8 P
- details: function() {* T& F" u) ?4 }) m
- return this.site + " - 学的不仅是技术,更是梦想!";
( ~* P/ s+ z0 z4 E1 B. b- O - }
' j' ?' y8 r2 \' k4 t/ T0 I - }1 c0 _. T" R7 M2 M6 d5 ?
- })5 `! Q+ ]7 {0 h# G, q
- </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">6 h, j7 `( L8 K) d
- <h1>site : {{site}}</h1>
& K6 O0 {/ t6 h - <h1>url : {{url}}</h1>
. ^; m: W; B% O' Q, ] - <h1>{{details()}}</h1>
p; V1 @+ P( i; z) K - </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。 - <div id="vue_det">
+ t8 S1 a4 g0 @8 m - <h1>site : {{site}}</h1>. p, R- f- N9 c% w) E
- <h1>url : {{url}}</h1>, \2 J3 w: r1 k
- <h1>Alexa : {{alexa}}</h1>* @4 a1 {3 f! e$ k9 m% y9 i' P
- </div>3 k2 ^9 l" @6 I
- <script type="text/javascript">
$ N" I+ f3 T6 u4 K' S# a: n - // 我们的数据对象
/ \. O C/ a& A# d! u7 A" @ - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
3 f2 m% ^/ W: B7 w: {4 T' L - var vm = new Vue({/ P0 M3 ~, f& n7 z% ]3 X$ A
- el: '#vue_det',; \' f' a$ ~) i' U( R) _) v
- data: data
0 ], k& q4 I- O8 B, a! b ]/ h - })1 Q: u" ]$ H+ h. x8 R5 c# U
- // 它们引用相同的对象!! S7 \7 s1 p2 U+ V; D
- document.write(vm.a === data.a) // true% U: S8 Q1 y* |$ a3 d
- document.write("<br>")" H6 I3 j* L! d9 n
- // 设置属性也会影响到原始数据
4 J" t- e7 ]0 m" Z - vm.site = "Runoob"3 M* @% x& E. B1 \. j
- document.write(data.site + "<br>") // Runoob
: b V( E( @; L+ q -
1 t4 A: y9 X: A, L b: z# X9 m, X - // ……反之亦然# l6 V- K6 i; A( {$ ^
- data.alexa = 12344 Y9 Q { q9 x$ s
- document.write(vm.alexa) // 1234! x- P/ P% q. S
- </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如: - <div id="vue_det"># F4 r" M& ^! U% T. s
- <h1>site : {{site}}</h1>
( n$ Y+ I8 ~" X& j5 W, k# v) o - <h1>url : {{url}}</h1>
1 e/ o" b6 h$ X8 V3 s - <h1>Alexa : {{alexa}}</h1>
; @+ r- @" ?( _) m( V& R - </div>
9 U' B- \1 g7 j* G - <script type="text/javascript">) r) B3 X2 j6 _1 t) o7 {1 q+ b- W. m
- // 我们的数据对象! D& j* W. T) [
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}1 P! i2 F/ D5 w" p) v2 n
- var vm = new Vue({# u, y3 n) ]6 T2 v
- el: '#vue_det',
9 {, q# A6 G3 z4 ^- u- c m - data: data/ W' ?1 }' v9 W& f
- })
' r: X, f+ [6 z8 f" c- n - & e$ x& Y3 U8 h4 [' e# |0 U
- document.write(vm.$data === data) // true9 H0 j, H- E$ @( `: |7 R: F+ T% S
- document.write("<br>") // true
s6 Q( F# t4 o, d - document.write(vm.$el === document.getElementById('vue_det')) // true
7 w3 w5 q# n+ h. _5 e9 g - </script>
复制代码
. u8 z* V' g; z1 k7 J3 j
9 j3 Y- A. h* r5 L: \. o |