|
Vue.js 起步 每个 Vue 应用都需要通过实例化 Vue 来实现。 语法格式如下: - var vm = new Vue({) |/ E0 I* I, Y8 P* _, r+ S1 h7 j5 S. B
- // 选项
9 @( `3 S; ]& w# O0 ? - })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容: - <div id="vue_det">
, H+ i; D! _" H8 P7 l" k: m - <h1>site : {{site}}</h1>
* V+ P8 J! i- I% X7 Q h - <h1>url : {{url}}</h1>
; G/ b" h; y' Q" [! L1 E5 {- c0 | - <h1>{{details()}}</h1>* }4 K0 F) A: s
- </div>
) W8 Z1 ]6 Y" j5 ]. Q- c5 ^& t, ` - <script type="text/javascript">
+ h+ x! L/ a2 ?4 Y/ y - var vm = new Vue({
+ D$ x# \5 N: N - el: '#vue_det',8 b3 R% f) y6 G5 P
- data: {2 ^% F' k' m$ w! j, ?2 f8 q4 `
- site: "菜鸟教程",
$ @4 S& \2 P( p- U& ^ - url: "www.runoob.com",
# O. h3 k$ D9 M- u! Q! j( ^5 t( a - alexa: "10000"4 i" C: T/ X) p: b* l% F
- },
3 c# q& N3 z5 u6 }( @) e2 @ - methods: {
% X9 Z" r7 ?! N- y& Z9 l9 E - details: function() {' F8 a" t) f* m) r9 c2 g6 K
- return this.site + " - 学的不仅是技术,更是梦想!";
7 |$ m, I# k; D& G# X. w9 u - }
, M9 H3 \& r2 A( q& H - }9 c2 H& P; }* K2 y' B
- })' A% E; p2 ?# b+ n9 c( c8 n7 X% g
- </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">
! C6 i1 r' L6 T9 ?+ R; h- C" ^ - <h1>site : {{site}}</h1>+ P7 ]1 p/ Q+ x! [7 g
- <h1>url : {{url}}</h1>
% ?2 W. c. t5 m3 e! C% z, Q - <h1>{{details()}}</h1>$ |$ S* p1 V$ W1 D6 p0 v
- </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。 - <div id="vue_det">
6 Z# C+ Y: [ d. `: [ - <h1>site : {{site}}</h1>2 K% o9 A4 j+ ?) n) L# T5 r
- <h1>url : {{url}}</h1> t* @( x5 u5 `) V8 m9 P& J" c
- <h1>Alexa : {{alexa}}</h1>2 _9 b5 h/ f- J% ^2 C i" g1 K# u, F, `
- </div> v; K; q4 x( O: v0 v; _) _
- <script type="text/javascript">! d& Y* }) W% J; w8 H2 M" I
- // 我们的数据对象
$ z' c, E6 r! Y- C9 U# D - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}7 O& h1 S3 J; X
- var vm = new Vue({* y5 E! k7 P! b
- el: '#vue_det',5 }% G. T# H% T5 C: O
- data: data
$ G/ a# B4 l" K5 z' k: i+ { - })
5 x" ~' l2 R% C( [: l - // 它们引用相同的对象!
# z& s9 R7 r( R+ T - document.write(vm.a === data.a) // true
( k# C7 b v4 L - document.write("<br>")4 T0 J# @3 }( Z! U& L a3 B
- // 设置属性也会影响到原始数据3 K/ H/ Q7 n; A
- vm.site = "Runoob"
0 X# O2 d% T q$ b& u. K9 v - document.write(data.site + "<br>") // Runoob
! L, B, ]! Q" u - 4 x9 q6 l* N9 E( x* J5 V
- // ……反之亦然
8 Y2 B% ^7 ^. V, C - data.alexa = 1234$ K0 O0 E6 J2 F/ B1 a
- document.write(vm.alexa) // 1234
0 a, z: k: Z. [ ^1 ~+ O1 t9 Z - </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如: - <div id="vue_det">
' G' l) {# i" J: L" y- K0 t+ { - <h1>site : {{site}}</h1>) y3 h/ ?5 u. S( h2 G; z
- <h1>url : {{url}}</h1>
' y1 i% G; F _( q( ] v+ | - <h1>Alexa : {{alexa}}</h1>
& B# [& ^ r1 A8 g7 @4 F0 r. u - </div>" s: `5 L! \% T# O5 G( X
- <script type="text/javascript"> T: |2 ?; }5 E7 x) W' @
- // 我们的数据对象) Z" K* [; j3 X# h
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}" _- l [9 ~0 t2 s
- var vm = new Vue({
' W+ b( k! p( R& q4 ~6 \ - el: '#vue_det',+ P2 {; e7 m- S4 t
- data: data
! y- W( V5 c" p, D, a: I; \ - })& X$ u9 D, Y5 t! a5 X
- $ F! ]( O8 j5 T& g9 A: u" w( J f
- document.write(vm.$data === data) // true
0 T) B/ i" G0 m% U# G2 _9 P - document.write("<br>") // true
6 E' D# y' b+ q- [8 }5 I) a - document.write(vm.$el === document.getElementById('vue_det')) // true8 ~3 p' i6 K. H% Y+ S% D. l* ~, ]4 P
- </script>
复制代码 0 T) _& a3 B1 f; c6 V, y( _
4 y, v6 O& H# c3 b |