cncml手绘网

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

作者: admin    时间: 2018-7-1 23:08
标题: Vue.js 起步
Vue.js 起步
每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
  1. var vm = new Vue({
    & E/ ]* T/ B0 ]- B" B) N
  2.   // 选项  X* d/ K- b+ |
  3. })
复制代码
接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
  1. <div id="vue_det">
    + v& \1 D- o6 z
  2.     <h1>site : {{site}}</h1>0 }" c1 L5 D3 l1 s( u
  3.     <h1>url : {{url}}</h1>
    9 O# [, P. W1 O* A
  4.     <h1>{{details()}}</h1>
    7 t. g; _/ w# D3 k
  5. </div>
    $ @: {9 N2 M" @% X& A3 c
  6. <script type="text/javascript">) O" ^5 G; H/ D! q+ x+ _! u
  7.     var vm = new Vue({1 e, M' o! T. t/ a1 L5 y4 X. r% {
  8.         el: '#vue_det',
    7 N! A  K1 T. `9 q' V; U
  9.         data: {
    * O7 b0 T  W6 m3 `1 C
  10.             site: "菜鸟教程",
    5 Y/ y' c6 d: O5 ?
  11.             url: "www.runoob.com",4 I( n1 `! f7 m( R6 z2 A
  12.             alexa: "10000"6 h+ M4 l" T3 j- ^, x4 A+ a
  13.         },! Y( p* I& E" o5 I! Z3 s$ E' n) h$ s
  14.         methods: {
    . J& A5 J4 \/ C7 D& _5 V+ q1 N: ^
  15.             details: function() {7 O( j2 t5 v, I8 X7 ^, y! S6 i! @& {
  16.                 return  this.site + " - 学的不仅是技术,更是梦想!";
    4 F' O$ n, T. ^* ~; P
  17.             }  J" }4 o+ e* C6 L+ |! y
  18.         }( \' Q2 K% p  l2 l" F! b
  19.     })
    0 i3 l4 S- ~5 G/ a! X7 ^/ C# M. m
  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">
    ' C2 v; E4 z! H5 U" m
  2.     <h1>site : {{site}}</h1>
    $ P. k7 f3 X7 i% n8 H! T
  3.     <h1>url : {{url}}</h1>0 t% ?0 ]5 U2 X) ]# ]3 p, G
  4.     <h1>{{details()}}</h1>9 e) E( s. m/ I" Y5 g0 }, n0 r
  5. </div>
复制代码
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
  1. <div id="vue_det">3 @7 e6 }, E" ]- c  t/ j
  2.     <h1>site : {{site}}</h1>
    2 `9 T5 \: n6 L. Z9 W+ c* A" W
  3.     <h1>url : {{url}}</h1>
    : P" s8 i5 _) R6 b- @& ?
  4.     <h1>Alexa : {{alexa}}</h1>* R0 M1 @: V2 m/ [) ~/ e0 Q% q
  5. </div>
    % o7 @) E) f% n  P) f9 \. Q' K
  6. <script type="text/javascript"># f" s1 r$ Z# v' s
  7. // 我们的数据对象1 n+ c1 m2 I0 |% ]+ g9 q
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}% i! }8 i5 _1 y) n
  9. var vm = new Vue({8 ]4 q/ B8 `$ k
  10.     el: '#vue_det',
      W* t* r; ]3 N4 m) b& u8 s7 u7 W
  11.     data: data
    3 k7 h& J% F! z% p. Q3 N
  12. })( B5 F# a* i$ Q% L0 L1 J7 m0 V
  13. // 它们引用相同的对象!5 G! \) |! c9 o7 F3 x6 v( T
  14. document.write(vm.a === data.a) // true
    2 c" x" s7 ?$ f
  15. document.write("<br>"); u9 j7 e8 e: n3 {- R7 ?4 }
  16. // 设置属性也会影响到原始数据
    ( Z, S. p# Y. o
  17. vm.site = "Runoob"
    ; a7 d+ ]0 z- a" z, j6 l% e" {* ~
  18. document.write(data.site + "<br>") // Runoob
    ) n+ T) D5 c! E; Z0 {
  19. ) v* A* m5 [0 @
  20. // ……反之亦然; S4 b1 I1 B! K6 J4 H' [- W
  21. data.alexa = 1234+ l, y2 S! Q% i5 Q8 \7 ?! J8 K  t5 h
  22. document.write(vm.alexa) // 1234
    8 N# k6 G* [. r% D
  23. </script>
复制代码
除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
  1. <div id="vue_det">! J" I/ ^1 h' b4 r( }3 i
  2.     <h1>site : {{site}}</h1>9 j1 D: D. C+ Y! ^9 J1 c
  3.     <h1>url : {{url}}</h1>
    : z6 l5 b, |- J( I+ Y
  4.     <h1>Alexa : {{alexa}}</h1>
    - ?) n9 f, U" w6 x, z% ]/ w
  5. </div>
    + V' t0 }  C1 e( d8 x* c7 l6 i
  6. <script type="text/javascript">) j5 [. X  ?6 D: S& n4 u
  7. // 我们的数据对象' h9 u( ]$ u+ N% G
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}: z9 }, B4 G+ w* |; \2 ]! t
  9. var vm = new Vue({1 s8 u# b; H3 D& P
  10.     el: '#vue_det',
    2 q8 F3 @& `8 `/ ?" t
  11.     data: data
    1 y4 }0 }+ i; i- A  H# O
  12. })& S: F: r$ [+ \4 H: n
  13. 0 r5 ]0 \& f& W9 \- D4 {
  14. document.write(vm.$data === data) // true
    & U5 K1 ]3 y! ~/ ~7 s
  15. document.write("<br>") // true
    , c! O5 N2 @1 _* \+ G
  16. document.write(vm.$el === document.getElementById('vue_det')) // true
    7 b5 Z' \+ p, I: A. q
  17. </script>
复制代码
4 v2 y  w2 f" p, c

5 }# x" S& Y4 h( v




欢迎光临 cncml手绘网 (http://www.cncml.com/) Powered by Discuz! X3.2