cncml手绘网
标题: Vue.js 起步 [打印本页]
作者: admin 时间: 2018-7-1 23:08
标题: Vue.js 起步
Vue.js 起步每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
- var vm = new Vue({
9 s6 a( n& o! r/ g2 l& D* F - // 选项0 k8 T( \( I& Q! n! W( ~. N
- })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
- <div id="vue_det">3 u. i4 @$ P0 X6 v$ J
- <h1>site : {{site}}</h1>/ O6 |, O' l$ @
- <h1>url : {{url}}</h1>0 \" _' `8 ]7 n" e& g( r V' w
- <h1>{{details()}}</h1>* F6 [8 r. Z5 J+ H, o9 m2 T! C
- </div>6 X, _. c6 }, |, G# B. _) Z
- <script type="text/javascript">5 Q5 D' T1 }/ X0 ~4 g% q$ | C
- var vm = new Vue({4 {' T5 V# `% |
- el: '#vue_det',
6 f4 t& j$ E' V - data: {
( [* c) w- S2 D* A) v - site: "菜鸟教程",# X; t* P% s: Y
- url: "www.runoob.com",
7 S& Q2 W5 @. X - alexa: "10000"
# T, f6 y/ w' g8 u* L) a - },
. U% u, B1 ~. t( J4 [" K* p - methods: {, [& L5 G0 O. D+ K1 H r1 _
- details: function() {* D" u, ^# t& Z8 d# z' O2 Z
- return this.site + " - 学的不仅是技术,更是梦想!";0 s5 v/ ]4 P/ B0 C8 u* b
- }- a3 \+ P7 M/ _2 c0 V
- }; v& |0 C7 K5 w% o# F. ?) N1 G
- }); S; X5 }3 t- P9 E* D' L# 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">
' F- J+ r+ G4 z+ f1 [ - <h1>site : {{site}}</h1>
( F" m; p' C X. X8 F - <h1>url : {{url}}</h1>% n, X) F- O; `; p9 w+ n% N* k
- <h1>{{details()}}</h1>8 _; ~4 s- Q. a0 W$ `
- </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
- <div id="vue_det">
3 O* J" v3 W5 [ x* J1 S - <h1>site : {{site}}</h1>1 b3 f: _4 a2 P" d; K3 b/ i, ^
- <h1>url : {{url}}</h1>
( L1 v8 `' \" x# f% k/ B - <h1>Alexa : {{alexa}}</h1> i# E7 [2 R" d( _2 R2 O g0 v
- </div>9 ?0 w8 W# c( f! c1 a+ t
- <script type="text/javascript">2 w" O8 n n' G! c5 [
- // 我们的数据对象 k. |7 A- k' I/ f, R% E; q
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}7 N. v; Y$ k' }* P/ ]
- var vm = new Vue({
5 x5 `/ C6 I+ b5 b- Q - el: '#vue_det',
9 t1 b$ N9 ^8 n! @ - data: data
( k2 K/ X) j+ d% K - })9 i5 x) e6 M& Z- E1 O
- // 它们引用相同的对象!+ n7 s) b% I$ a% z( `3 Z1 _) _
- document.write(vm.a === data.a) // true
% [! e+ S% J4 ~ - document.write("<br>")
1 x. C7 \1 M! y0 X/ Q" C - // 设置属性也会影响到原始数据
# B! q& p* ?5 o, v - vm.site = "Runoob"1 v5 z) d' }8 E1 b7 h
- document.write(data.site + "<br>") // Runoob& i7 w% }2 m6 B$ k) ^, R' L2 M
- , f7 R ~* z% \. l* i# L9 L
- // ……反之亦然8 d) b' c0 \: D; l
- data.alexa = 1234
0 ?0 Y$ ?! Y! W( L* a - document.write(vm.alexa) // 1234
# s, l' W2 \' E" d6 A - </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
- <div id="vue_det">& i1 o5 g1 i' |0 N& M B; d4 D' [
- <h1>site : {{site}}</h1>, ^ b: v4 U& r' D4 y
- <h1>url : {{url}}</h1>
- m4 t( C1 y S% N& K - <h1>Alexa : {{alexa}}</h1>
' g( c6 x$ S1 Q6 K- m6 y4 m - </div>/ X2 z m- v7 V$ J! T6 H( e) Y9 ?- \
- <script type="text/javascript">* A6 Y& _5 k3 @1 S
- // 我们的数据对象
! i0 a, }+ z/ O: g - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}( Q) h' f* L% U0 N3 [4 F
- var vm = new Vue({5 {% F- E X+ t
- el: '#vue_det',: A( @' k) r/ D: E8 v) \9 {6 c
- data: data( {2 s2 p( m1 J% m
- })
# {* N: J2 t6 j1 }% t - + F: u2 N2 K$ L. c
- document.write(vm.$data === data) // true
+ X% U4 _+ e( G - document.write("<br>") // true' K: {2 F/ t8 e6 {9 q+ g+ I, k
- document.write(vm.$el === document.getElementById('vue_det')) // true
# |' I0 O+ s0 Z# R/ U( X - </script>
复制代码
1 E) n& c' P8 ^4 H0 }2 Q" Q$ \4 L- K' j
| 欢迎光临 cncml手绘网 (http://www.cncml.com/) |
Powered by Discuz! X3.2 |