cncml手绘网

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

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