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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[Vue.js] Vue.js 起步

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-1 23:08:58 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
Vue.js 起步
每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
  1. var vm = new Vue({
    " W, l4 b4 y' Q$ |8 }9 @8 l+ p
  2.   // 选项
    5 L) o* Y0 ~( @2 v. {7 k5 ]" P7 ~
  3. })
复制代码
接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
  1. <div id="vue_det">% P! f! x7 }% n5 e- S: Q; t) ]
  2.     <h1>site : {{site}}</h1>4 V# n2 c4 G7 ]5 I- e1 W- b9 N
  3.     <h1>url : {{url}}</h1>& C* p# x1 x1 J! j) Y) Y1 g
  4.     <h1>{{details()}}</h1>
    4 }0 Z4 O) B" ?) f- t2 G' L! w& e
  5. </div>
    : ]6 g5 [! n) {9 w3 S
  6. <script type="text/javascript">
    3 u& A! P( a$ N
  7.     var vm = new Vue({
    ! G4 ^/ F+ F. x; ]$ z
  8.         el: '#vue_det',/ F; q4 I5 w* r1 }, q' f! M6 P% R
  9.         data: {
    ( ?9 I+ R& t3 Y3 Q" K$ E) o
  10.             site: "菜鸟教程",
    7 K: z6 y* R0 S- _% o- Y$ P! S; C4 d
  11.             url: "www.runoob.com",
    ' Z! s+ [: q  A7 o6 ^
  12.             alexa: "10000"
    8 c; ?/ h7 l+ K. k+ X" n0 Q
  13.         },
      M3 l, Z8 Q' {) U$ |
  14.         methods: {
    7 C0 |. D' P9 i! }2 _5 Z( h
  15.             details: function() {1 d! D% D; c( T
  16.                 return  this.site + " - 学的不仅是技术,更是梦想!";* z% I* n0 q! I5 d1 z; J2 ]/ O# T
  17.             }
    ! f" D8 T" Z, M; i: v9 {
  18.         }
    ; |. m- h9 Z2 g4 H* e
  19.     }). ^9 X4 x1 ?  w( T
  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/ g1 W0 l* u$ C) I
  2.     <h1>site : {{site}}</h1>
    " W( M- N" k' [8 ]
  3.     <h1>url : {{url}}</h1>- h6 T0 i: o' C
  4.     <h1>{{details()}}</h1>6 n# `4 O+ L. ?9 }3 ^
  5. </div>
复制代码
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
  1. <div id="vue_det">
    : C0 K( t6 ]+ m* q; u) ?" d+ B
  2.     <h1>site : {{site}}</h1>
    1 f1 s) c7 J1 n, P9 J
  3.     <h1>url : {{url}}</h1>
    $ h) \4 c4 D8 W8 X0 U
  4.     <h1>Alexa : {{alexa}}</h1>
    ) `' I+ r0 I1 c
  5. </div>3 q8 }8 ]* ~' E- B
  6. <script type="text/javascript">: @8 A0 e; T1 v
  7. // 我们的数据对象7 K, ], w" ?1 J9 S
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}2 n4 F4 x4 U' @( h+ g
  9. var vm = new Vue({
    * {- B! N( y8 x7 o- ]* n, d
  10.     el: '#vue_det',
    3 r7 y" V8 y4 Q" J
  11.     data: data
    ! L! o4 T: C! @9 [- t
  12. })
    4 [! B5 \; N' N4 u
  13. // 它们引用相同的对象!
    , _7 i% G' U2 `6 x$ l4 [
  14. document.write(vm.a === data.a) // true
    7 i+ j' u8 F  H0 z; r
  15. document.write("<br>")
    + ?7 t3 \1 P; |
  16. // 设置属性也会影响到原始数据( S; b& c$ a, b4 I2 l& ]
  17. vm.site = "Runoob"
    ) `! N7 R) l' y. J' P/ y
  18. document.write(data.site + "<br>") // Runoob
    : w7 a& N7 S6 f: M! ^" G
  19. 1 g% ^% l( M' ?" J) g$ m7 b
  20. // ……反之亦然! N2 h& N. Y% P3 x5 b- n
  21. data.alexa = 1234- A6 F) ]) k) [" o& X/ W" @" U
  22. document.write(vm.alexa) // 1234( [! g) A* G$ r2 Z& I3 ?1 ?
  23. </script>
复制代码
除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
  1. <div id="vue_det">
    4 ^2 p2 U4 D: b  Z: ?
  2.     <h1>site : {{site}}</h1>7 Z  C) T2 B4 T4 X' d
  3.     <h1>url : {{url}}</h1>% ~- j& q9 b  T3 ?
  4.     <h1>Alexa : {{alexa}}</h1>
    9 ]: A( Q; L: Y' S: w1 I$ t) Q# O
  5. </div>
    * w5 F' R* G! N
  6. <script type="text/javascript">5 A8 O' G6 q2 `+ m
  7. // 我们的数据对象- f7 g2 w/ w* @% B. v! J/ k
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}' t8 T& g# q, H1 @' E/ l# @5 H) _2 C
  9. var vm = new Vue({
    & N* w; b# Q- q* e6 u0 }5 \
  10.     el: '#vue_det',
    4 j/ F+ X, u( r. t" w' Y# P
  11.     data: data4 V4 [4 h0 [; }+ ~
  12. })8 x& k* F5 G3 r5 |9 n6 Y8 c/ Q

  13. 5 q% ?- Y7 f# F/ l5 B7 ?
  14. document.write(vm.$data === data) // true8 V3 O5 J1 `2 u9 _: Y
  15. document.write("<br>") // true  d3 U) b# ?/ n
  16. document.write(vm.$el === document.getElementById('vue_det')) // true
    ( E: E1 [1 {3 E- s3 e( O8 b
  17. </script>
复制代码

! S, }# [7 }& N0 ]  O1 f8 k0 X5 Y8 U
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-3-17 21:47 , Processed in 0.055470 second(s), 20 queries .

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