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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[Vue.js] Vue.js 起步

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-1 23:08:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Vue.js 起步
每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
  1. var vm = new Vue({) H$ T9 |+ ]3 e, N  Z3 _
  2.   // 选项
    # V4 E/ ~8 R( Z" o$ ?" @
  3. })
复制代码
接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
  1. <div id="vue_det">
    2 Y& r3 N% V$ G9 ?
  2.     <h1>site : {{site}}</h1>
    . U4 J" C' C% D1 F- Y
  3.     <h1>url : {{url}}</h1>& t) Y. w, P1 l
  4.     <h1>{{details()}}</h1>5 Q5 P' Y) ^/ ~; M! @
  5. </div>
    7 ?9 a0 `1 w! Q& X5 x
  6. <script type="text/javascript">
    4 e, u5 n3 U# W+ v& L9 W
  7.     var vm = new Vue({
    ! S# n  {" S& q, i
  8.         el: '#vue_det',% V* ~  u. h6 f% J8 |- G( V
  9.         data: {
    3 Y* t, Y+ `$ y5 ~+ s9 E* Z) F
  10.             site: "菜鸟教程",
    , ^7 R) E8 k9 M4 y
  11.             url: "www.runoob.com",: N( d, x1 [1 r
  12.             alexa: "10000". q+ W9 F8 O6 _( @1 v
  13.         },9 u0 _3 e& p3 U; N9 \# O# u* e
  14.         methods: {
    % [0 [% i( X' S6 }$ T  X2 b0 Q! U
  15.             details: function() {3 E. ], I$ o$ L0 P/ J5 i8 V
  16.                 return  this.site + " - 学的不仅是技术,更是梦想!";0 u0 E2 j7 E1 O9 ]- K# d" S3 x
  17.             }6 e7 O" I; e1 s2 H4 U" ^
  18.         }
    $ }! r# Y3 k- C2 X% Y6 ?2 s
  19.     })  p) Y* \' Y) R6 s
  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">. J4 n( _3 P5 @  \& G1 Z' U9 P
  2.     <h1>site : {{site}}</h1>6 S* {; m5 ?4 s8 i* k  ~5 v# f
  3.     <h1>url : {{url}}</h1>$ h- T$ M1 {. Q% x
  4.     <h1>{{details()}}</h1>$ o6 p3 W) I: J5 M) F8 m
  5. </div>
复制代码
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
  1. <div id="vue_det">
    1 q; r, g4 O2 H
  2.     <h1>site : {{site}}</h1>
    ) R: w" m2 g( g. Z6 _) e, O* e
  3.     <h1>url : {{url}}</h1>
    : v8 ]' N9 w. ~! N. u! p
  4.     <h1>Alexa : {{alexa}}</h1># m% s! q8 l) `' b
  5. </div>) b* U# |$ ?* L$ I# Y. P& U
  6. <script type="text/javascript">
    6 D1 `2 ]# V+ Q. _6 @
  7. // 我们的数据对象
      n/ B4 O* [& r) @! `7 b: S7 \6 B
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}0 a4 w( x8 P; t% \  F
  9. var vm = new Vue({$ p7 b* @! K* u7 A/ |, `. v5 f' ]; S
  10.     el: '#vue_det',! F0 _: P4 [- e2 I; E# {! l
  11.     data: data% t2 u6 o6 ]3 `
  12. }). u) Q# w, l4 I/ j/ i
  13. // 它们引用相同的对象!
    $ Q' M3 ~7 ^4 O4 |5 w2 k! t8 e
  14. document.write(vm.a === data.a) // true9 K8 @! s( H2 }; D, S; w$ ?
  15. document.write("<br>")
    " \' P' h* W) J. L, g, k
  16. // 设置属性也会影响到原始数据
    6 O: Z0 @9 w' W+ D
  17. vm.site = "Runoob"
    ! {- ^/ }$ R" Z! R* @9 u
  18. document.write(data.site + "<br>") // Runoob
    4 e, G5 _& ^( ]8 C; s+ {6 |$ ]% I

  19. - Z' k. F" j) i. l' N2 w
  20. // ……反之亦然4 @- _3 o3 D6 D
  21. data.alexa = 1234
    0 Y" y0 l1 W% W1 w6 b7 L4 ~/ P
  22. document.write(vm.alexa) // 12342 K  q+ D9 Q* U; E7 k! m/ D) J
  23. </script>
复制代码
除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
  1. <div id="vue_det">
    ! Y& n$ O7 A4 Z; [
  2.     <h1>site : {{site}}</h1>
    7 q" |9 X. F% g$ W! ?8 ?
  3.     <h1>url : {{url}}</h1>
    ( Q4 [6 l! e! A1 Y9 L6 d8 V
  4.     <h1>Alexa : {{alexa}}</h1>
    7 G2 I6 m% T) `- w3 u) h& }  T) D
  5. </div>) O0 C$ c- F0 A) B4 d) p8 |
  6. <script type="text/javascript">4 ~% w5 D1 U+ U1 f1 u
  7. // 我们的数据对象+ J. G$ t% g: h5 @# j- A
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
    4 n/ r  K0 ]: X. a6 j  l/ l
  9. var vm = new Vue({
    1 ^' |$ h5 D$ i7 X
  10.     el: '#vue_det',
    ) R7 x' D. r  c4 ~' P  `
  11.     data: data( O  {2 |2 `' g3 i' I/ L2 v1 l7 p4 Z
  12. })
    ! e6 P8 d9 T8 O7 E2 b" B
  13. + i) K. F/ n; p2 H" H7 {
  14. document.write(vm.$data === data) // true
    7 G$ [. f) h, ?4 a
  15. document.write("<br>") // true6 g) B  A2 p( J' L
  16. document.write(vm.$el === document.getElementById('vue_det')) // true1 @5 h( p: F; \: E$ a5 B4 k1 K
  17. </script>
复制代码
2 T! R: M  e; B, s
* y# h0 r/ ?' k% r9 s* |$ ~- d
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-12-22 11:32 , Processed in 0.147509 second(s), 20 queries .

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