cncml手绘网
标题: Vue.js 起步 [打印本页]
作者: admin 时间: 2018-7-1 23:08
标题: Vue.js 起步
Vue.js 起步每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
- var vm = new Vue({" @: k O: f( G& B! y4 o! q
- // 选项
& w& \1 R6 s F" F; s4 X - })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
- <div id="vue_det">
; C* v/ B" c4 B! W, q8 [0 G - <h1>site : {{site}}</h1>
5 n; G/ t3 n9 x9 T: H3 C: z - <h1>url : {{url}}</h1>( ]5 p1 E4 j3 p; F8 T. S0 k
- <h1>{{details()}}</h1>
- J0 M* C( \8 N' o" Z - </div>( I9 l4 `0 v, b6 f- u0 O
- <script type="text/javascript">4 ]! {% Y a9 ?( W" g
- var vm = new Vue({/ K& ~: g1 n. W6 z
- el: '#vue_det',
& G" b* A- a' I" v, h) g! M4 N - data: {' `: E% j$ _ w
- site: "菜鸟教程",
4 U& _' S% ^: m. e( R - url: "www.runoob.com",
5 Z! C* Y( I% o. _* a& @ s1 S - alexa: "10000"0 S4 v! g. X. i( P' m
- },
4 j6 v3 O& c& ? - methods: {- R' G2 N6 I0 Q/ E( h; Y ^1 K4 P
- details: function() {
) q& Q/ Y T; i! w; B# O9 P% l - return this.site + " - 学的不仅是技术,更是梦想!";
! V5 e! \' b) p2 [7 k - }
; f! J# b% _. |; {! I) _ - }
; `4 V x$ ~6 C! j' s - })
9 n3 G, f P$ v8 D! b8 J o& h# C/ | - </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">
# l3 ^6 \1 N' W9 `" m7 d - <h1>site : {{site}}</h1>0 Z9 b& R7 Y, P
- <h1>url : {{url}}</h1>% n; R$ O1 t5 `+ a, _
- <h1>{{details()}}</h1>
3 p8 m% j$ R1 j% \- k; ^: O - </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
- <div id="vue_det">
& Y j3 R3 o- G/ b6 w; ]) f! M - <h1>site : {{site}}</h1>/ }6 E @8 Z2 T8 G4 B
- <h1>url : {{url}}</h1>$ x6 {2 e) p5 ~+ x9 X$ G4 }
- <h1>Alexa : {{alexa}}</h1>
5 H) `0 X7 V0 _4 m ~' {! q2 y5 { - </div>
: e7 H1 T5 ^* l, h% \4 e - <script type="text/javascript">& C! W6 j2 v2 J- Z
- // 我们的数据对象
7 _! p5 ^/ H" {! D, g$ l - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
9 a- {+ ^, ~& F$ q/ {1 u" N+ l - var vm = new Vue({
+ U9 {4 U" F2 p* ~6 a/ f0 I1 S* W - el: '#vue_det',
' P# }: [2 H& y3 \4 E! p! Z5 @ - data: data
) j0 b5 ]0 V l* y - })
6 D5 Z% Q) ~: i: O( Q y - // 它们引用相同的对象!4 F# F) ?. a5 s9 ^6 P
- document.write(vm.a === data.a) // true
. M* i1 @9 N, k3 s - document.write("<br>")9 Q0 _( b2 O1 F' w; ^. h3 Q' m8 h, w
- // 设置属性也会影响到原始数据6 v. p8 e/ g; E+ D. u7 y
- vm.site = "Runoob"
8 b! p- @+ E& B& Z. k+ ^# } - document.write(data.site + "<br>") // Runoob
7 |1 }% P4 T& _$ d7 L0 v - $ T" T9 E, `2 d: z4 q6 A& O
- // ……反之亦然
( c# E# ` V6 G0 S - data.alexa = 1234 [6 |4 F1 a8 f/ M
- document.write(vm.alexa) // 1234
! m: i9 p% W1 d' O - </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
- <div id="vue_det">
8 Q* C. U4 n; P' R) T8 }8 D3 B - <h1>site : {{site}}</h1>
$ F. H c( \# m, i/ u - <h1>url : {{url}}</h1>; E) }# n1 R7 Z- }$ O
- <h1>Alexa : {{alexa}}</h1>2 Q3 k9 I1 C; d3 Y: K o
- </div>
9 Z6 w+ k3 _1 ]% W$ w y - <script type="text/javascript">& t5 ?- r! z' d/ f
- // 我们的数据对象; P: ]0 i7 \9 g m
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}: ~3 a7 p! e6 `% f: f- J2 |
- var vm = new Vue({- I! P% s6 u3 ^. e' n' h2 m
- el: '#vue_det',
6 z+ ~8 [- z+ r" } - data: data
4 ?$ ~3 }5 G0 p V$ j: V$ j( K - })
5 H4 t' k$ l3 q# F - ( m7 L, J) P; F% v
- document.write(vm.$data === data) // true
! V& g. X8 w# E - document.write("<br>") // true
3 L+ a( z1 j! F - document.write(vm.$el === document.getElementById('vue_det')) // true
; z, W& l. @, s - </script>
复制代码
6 z( T7 d6 E- S& d; D1 z" Q: I, Q+ ~% a ~5 I+ W# I. _
| 欢迎光临 cncml手绘网 (http://bbs.cncml.com/) |
Powered by Discuz! X3.2 |