cncml手绘网

标题: Vue.js 起步 [打印本页]

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