您尚未登录,请登录后浏览更多内容! 登录 | 立即注册

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 14184|回复: 0
打印 上一主题 下一主题

[Vue.js] Vue.js 起步

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-1 23:08:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Vue.js 起步
每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
  1. var vm = new Vue({& n: q8 g+ b5 b% [0 f0 R2 C, W
  2.   // 选项
    ' ?' W8 v0 i" k, K1 G
  3. })
复制代码
接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
  1. <div id="vue_det">
    ; f- _% f# Q/ A3 J4 J: n$ Q& Q: Q4 a
  2.     <h1>site : {{site}}</h1>
    & U6 b+ ~9 i9 o& B& R$ z
  3.     <h1>url : {{url}}</h1>8 P8 c/ N" T$ C/ |  K
  4.     <h1>{{details()}}</h1>/ ?. p% j- ], R+ k( l
  5. </div>3 m" \8 z3 p( s& d! v1 l) ]& j
  6. <script type="text/javascript">
    9 q) Y% v5 }3 ~
  7.     var vm = new Vue({+ d6 L* s" ]; l$ P# ]! v% y. U/ h4 Y
  8.         el: '#vue_det',
    # E  H, u: n  K, j/ U3 y) @8 }* I
  9.         data: {: X# A9 X- i* `* X
  10.             site: "菜鸟教程",& l! R  [7 N# E4 ^
  11.             url: "www.runoob.com",
    . k4 I+ E+ I* @3 i- q: Z4 C
  12.             alexa: "10000"8 l2 x% i0 m6 t' R! `2 z$ n
  13.         },
    $ R, w1 O- y! U! X: G
  14.         methods: {
    2 k3 g) y, l) ~% A, E$ n
  15.             details: function() {1 a* i& h6 K1 L" T! c+ N4 |
  16.                 return  this.site + " - 学的不仅是技术,更是梦想!";
    9 Z3 X! n" m3 m" s
  17.             }
    % g+ ~! o6 v. g! M9 {$ a! ^
  18.         }
    / X4 m0 q* m: K1 l- c9 q- e8 e- p
  19.     })
    ( a0 G8 k6 \. S; M( I2 {
  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">
    + M0 b! A# T* ^3 j8 o, O# v6 n
  2.     <h1>site : {{site}}</h1>
    4 d6 y% v9 e2 U' N2 R' x
  3.     <h1>url : {{url}}</h1>
    % p! d0 R( P1 L; q  W
  4.     <h1>{{details()}}</h1>4 ^+ i  c' W. U1 O0 ?1 B
  5. </div>
复制代码
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
  1. <div id="vue_det">2 z4 A7 @4 Y4 H) f. ^# B
  2.     <h1>site : {{site}}</h1>
    2 t' x: L, S  t  ?8 F3 G
  3.     <h1>url : {{url}}</h1>
    2 I, w, ^" w! m# u
  4.     <h1>Alexa : {{alexa}}</h1>
    . U" ]. U" a  d8 c- i( `  `4 ~4 N! ]
  5. </div>
    0 F; [( y" i) G( ?0 y: \
  6. <script type="text/javascript">( p4 r: a. [) i7 p
  7. // 我们的数据对象3 A3 _: @2 p" }+ T5 J/ t9 J
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}: s, O6 I5 L( V$ S# o
  9. var vm = new Vue({! b: e& x! t6 e. u, |
  10.     el: '#vue_det',; P* O2 n- l; \0 {+ u
  11.     data: data
    $ C) F1 ?6 O, K/ F1 Q
  12. })
    * \: t+ |: g5 G4 p( C8 q; q: n* o  P
  13. // 它们引用相同的对象!
    6 L$ Q- ?% b+ h( I; d7 c  {% k' O
  14. document.write(vm.a === data.a) // true- ]' t) Z8 z: }4 T; \8 I' n5 b
  15. document.write("<br>")$ ?' L) u4 {$ \2 b/ L9 B  R
  16. // 设置属性也会影响到原始数据
    6 ?- M1 d8 ]: }
  17. vm.site = "Runoob"2 B* B9 _) C4 d. U, _/ C' V
  18. document.write(data.site + "<br>") // Runoob
    5 f" d  [5 m" L
  19. , p& ^% Z# R* E6 V: e
  20. // ……反之亦然/ l2 k; v: B$ A; N2 [( }
  21. data.alexa = 1234
    , }" R! K% y0 U1 M2 K& v
  22. document.write(vm.alexa) // 1234# S2 @& s; u. d/ `
  23. </script>
复制代码
除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
  1. <div id="vue_det">1 }- O' Y1 @! j/ J7 Z. s3 H6 f6 i
  2.     <h1>site : {{site}}</h1>
    8 {! @  Z: h4 g) C  A5 H
  3.     <h1>url : {{url}}</h1>% ~6 ]( d$ C6 w! a
  4.     <h1>Alexa : {{alexa}}</h1>
    ' Z8 e3 i& x: h. M( ?1 }
  5. </div>
    ) ]; z$ O/ j% F7 \- D' w
  6. <script type="text/javascript">0 Q, m1 o6 J0 g) V; y- ^2 i1 J* ]8 h
  7. // 我们的数据对象" k( ]* W$ Y% E/ e& ^- H( C0 ~
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}, t5 f8 p9 L6 A" C5 D
  9. var vm = new Vue({
    0 M, F" o* z" e9 Z" n/ e7 u' r
  10.     el: '#vue_det',5 S9 I! d# R: Y
  11.     data: data  ?3 R5 h6 G0 w
  12. })
    1 a6 v. n8 V5 c% W* s! n1 f- T

  13. . t, _, r  a5 C4 `
  14. document.write(vm.$data === data) // true# D# ?$ W+ I; \  y4 p
  15. document.write("<br>") // true
    & ~8 m5 W2 E$ J8 [8 {
  16. document.write(vm.$el === document.getElementById('vue_det')) // true
    3 n& L- v/ I! t  {# ]
  17. </script>
复制代码
* B- m# U" z& P
6 e2 j9 t9 ~- I1 p
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-1-30 14:27 , Processed in 0.052103 second(s), 19 queries .

Copyright © 2001-2026 Powered by cncml! X3.2. Theme By cncml!