|
Vue.js 起步 每个 Vue 应用都需要通过实例化 Vue 来实现。 语法格式如下: - var vm = new Vue({. l0 R0 S7 m$ N8 s4 a
- // 选项
4 r" M/ {/ f7 G5 O0 r0 ?, r# G - })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容: - <div id="vue_det">- v3 J: R; x) C3 U1 t( I7 e# u
- <h1>site : {{site}}</h1>( V6 N( c3 N! D- g. p0 h4 D
- <h1>url : {{url}}</h1>
, A1 F! \3 J' R, W& Y; ] - <h1>{{details()}}</h1>
( r; f4 a9 Z* F" I - </div>
" @! i6 `& [! ?: r" l* W g, j" R5 o - <script type="text/javascript">) E) h9 U' E( u3 o
- var vm = new Vue({
; U# I( M8 g8 m/ m8 I+ C4 Y7 A2 h - el: '#vue_det',; |6 D A1 Y+ s
- data: {
1 ^- v, W% h" h {+ g - site: "菜鸟教程",* Q! V" Z7 y" Q" ]" T: T) A
- url: "www.runoob.com",9 j8 C* j4 Q( w6 ~9 z
- alexa: "10000"1 F% S/ @5 d, g
- },' I; g% L. G9 E1 g: I
- methods: {
5 X v% l- `0 s+ l, i - details: function() {
/ x/ v; Q( _- S, o' h - return this.site + " - 学的不仅是技术,更是梦想!";" }% X/ j: A% c1 B; { v$ `
- }0 |3 z; H% x: O6 B- x+ O" x
- }
0 j8 \- T- S* |5 o - })
7 x, I7 ?& \+ C' N7 ~4 \) _! J" | - </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">
/ @; u: z- L3 E5 F; C) G3 \, _ - <h1>site : {{site}}</h1>1 p1 i, }3 |7 r( t9 G
- <h1>url : {{url}}</h1>3 J g; }3 _0 T/ e3 A4 `$ X
- <h1>{{details()}}</h1>* a+ M1 a- a: ?5 a1 x
- </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。 - <div id="vue_det">
/ S% f" z/ M7 u# b) r# n: c - <h1>site : {{site}}</h1>
5 }8 R8 H y0 |" W& x - <h1>url : {{url}}</h1># _. T- f4 Q$ x7 {
- <h1>Alexa : {{alexa}}</h1>
6 t3 x4 P6 u) U5 W2 l - </div>
6 W1 F. o" J! e& F - <script type="text/javascript">& b% `7 F# l$ w* h5 g: P3 w% b, `
- // 我们的数据对象
) x' i1 m7 o4 G6 g+ y/ z3 G - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
" @: ?' U/ H, L4 ] p: e - var vm = new Vue({
9 g1 r6 c6 V) ^ - el: '#vue_det',! \% G% I3 y; R, H$ a" P
- data: data2 W* @. g' n/ u2 ^
- })
' g( k* [. D1 h9 U r7 @ - // 它们引用相同的对象!: b/ B. ~) B: w6 L, M# q& W
- document.write(vm.a === data.a) // true
7 V$ G+ B7 y- M+ M - document.write("<br>")
7 N" O$ v; n* d$ {# Q - // 设置属性也会影响到原始数据
$ n! f( S6 s$ {6 j! l8 a+ J - vm.site = "Runoob") R4 O; ~( T' B5 ~- J
- document.write(data.site + "<br>") // Runoob
" y6 |+ I3 w+ E$ S - ( M0 c. j, Q4 t; y
- // ……反之亦然
9 r2 g s/ l2 u6 d# F; v" w+ S# E - data.alexa = 1234
9 g9 q) |4 X% r) q- i - document.write(vm.alexa) // 1234
0 H0 y. W- J; X3 T - </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如: - <div id="vue_det">
$ x6 N5 ]1 c9 ^) g+ F' O) f: ? - <h1>site : {{site}}</h1>
4 p4 m4 s6 B5 J# I" o - <h1>url : {{url}}</h1>; ?/ b0 M8 P7 x5 e5 C. `
- <h1>Alexa : {{alexa}}</h1>
' e' w3 v& t i& s/ j/ F' W - </div>; g, |1 E/ R8 @3 a
- <script type="text/javascript">
! z' C0 l7 i6 l. G& b4 P+ \ - // 我们的数据对象
4 Q1 J% z$ c3 O( a/ E - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}( T8 |! |- V' o$ C& u
- var vm = new Vue({
4 W. H7 J' ~& |7 [! ]) ~ - el: '#vue_det',3 y) j, G& [3 s. Y
- data: data
+ x. O, u1 f8 _7 E- G - })
2 m7 g9 n) h+ }3 E& S6 s -
( W3 ^# H2 e! V/ z) t& S - document.write(vm.$data === data) // true8 C! N4 j7 M$ T% ?
- document.write("<br>") // true
2 [+ r6 \% v T; f. K - document.write(vm.$el === document.getElementById('vue_det')) // true7 E' {& T/ f& W2 ~( r- W
- </script>
复制代码
( Q& o( [5 J% l7 o/ ?
% \ k1 U+ h7 O8 _1 J2 ~: ]$ y3 j |