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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[Vue.js] Vue.js 起步

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-1 23:08:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Vue.js 起步
每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
  1. var vm = new Vue({
    8 E, k2 z0 q8 P& |6 @( W+ @) \* y3 A
  2.   // 选项
    , q7 \2 G! K5 }0 j5 l/ @! L; q: I
  3. })
复制代码
接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
  1. <div id="vue_det">3 `( I+ F9 p: `- S! A! z
  2.     <h1>site : {{site}}</h1>8 L; S$ Q. ]' T3 [0 B( y' Z4 Q
  3.     <h1>url : {{url}}</h1>
    - ]6 T* {. w' O8 A% n3 V! U
  4.     <h1>{{details()}}</h1>% Y5 s) ?; d/ t' O) Q7 H2 R
  5. </div>6 j# R; K% d1 R# `) i' J, A
  6. <script type="text/javascript">* M1 C; x' a0 t6 q8 M9 n
  7.     var vm = new Vue({
    3 O* n% \; A* w0 n  D& l% B
  8.         el: '#vue_det',9 m. G) s: f7 X' X' f% v
  9.         data: {! m! a+ c" y; f+ n8 g
  10.             site: "菜鸟教程",* f- Q5 `4 N; n/ \) ]2 s
  11.             url: "www.runoob.com",
    5 j3 q4 u" ~, c; J
  12.             alexa: "10000"
    , ]/ |& Y0 ^8 f$ o2 D! K
  13.         },9 K; J  N# L* }: G2 T
  14.         methods: {! J# Z+ S0 w& S
  15.             details: function() {
    + o  _6 S1 i" l5 c* K( `
  16.                 return  this.site + " - 学的不仅是技术,更是梦想!";1 v; @) X; v2 z" h9 N6 O
  17.             }
    : N, [0 z0 d8 V: `3 X( E! o) S& ^
  18.         }
    9 c6 i+ C3 h2 k( Z6 }4 K
  19.     })
    3 J& h9 }9 Z7 ~  m3 P* |
  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">7 Z% h: b# c6 ^$ Q( a0 y
  2.     <h1>site : {{site}}</h1>8 m/ f& K9 i2 h, \  q; l, a
  3.     <h1>url : {{url}}</h1>+ q; R) q6 e6 g/ D8 l# o
  4.     <h1>{{details()}}</h1>
    0 A* |7 r" H2 T2 V, P. A4 Z6 N
  5. </div>
复制代码
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
  1. <div id="vue_det">
    $ o( c$ ~. S: Q
  2.     <h1>site : {{site}}</h1>
    4 @# j" N# J) e0 o6 e
  3.     <h1>url : {{url}}</h1>' y  G- h6 l7 G4 l/ |5 _8 s1 z
  4.     <h1>Alexa : {{alexa}}</h1>
    . _% t% B* z# B( L6 Q! i- q
  5. </div>
    . @. o" E' O1 E& l/ Z) M% H# S
  6. <script type="text/javascript">
    9 K, ~( Q" z. Z% v3 o, x2 ~
  7. // 我们的数据对象
    $ z6 T5 v5 Z/ \  O$ [, w
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}' \  {/ S& p2 M7 |  z* A
  9. var vm = new Vue({. E2 L  V" l0 d) [0 C8 x
  10.     el: '#vue_det',# h( `+ ]5 E9 b/ n" i
  11.     data: data2 n" u7 c. A" F% `- s
  12. })1 }$ O- B) W: I$ g4 F
  13. // 它们引用相同的对象!" q8 r8 [% p3 C" f* [% T$ d
  14. document.write(vm.a === data.a) // true& j+ S7 o5 e) @0 q
  15. document.write("<br>")4 M; \( A. I9 u: g3 Q3 f3 e( ?
  16. // 设置属性也会影响到原始数据1 l! e2 ^5 Y1 \3 J: c: x5 ~/ q
  17. vm.site = "Runoob"2 J3 q5 g& m( y& F
  18. document.write(data.site + "<br>") // Runoob
      W+ B  E4 |7 s: n# A
  19. & `) {+ |9 h3 H6 N4 s
  20. // ……反之亦然
    - `, t. Q  ?1 S  t
  21. data.alexa = 1234
    3 L" `5 A) R( x* K8 J: m2 ~/ I
  22. document.write(vm.alexa) // 1234$ I$ R$ o/ N0 ^) B
  23. </script>
复制代码
除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
  1. <div id="vue_det">& e* C9 _  `& \: ~$ F
  2.     <h1>site : {{site}}</h1>
    - [8 ~4 G! w* k, V
  3.     <h1>url : {{url}}</h1>& c, U- W6 Z# c& z
  4.     <h1>Alexa : {{alexa}}</h1>
    $ x& A. L* R2 d0 M+ B
  5. </div>- p4 a) r* \7 ^
  6. <script type="text/javascript">0 l1 V- f; \$ ]/ p
  7. // 我们的数据对象5 F6 ]! x' }0 T; w
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
    * x4 O9 m5 n' W$ c6 B
  9. var vm = new Vue({* |2 n) O9 r0 e" {& ?
  10.     el: '#vue_det',& v" f5 p8 W  T# C5 L
  11.     data: data: q! O7 t- L! w9 h6 `3 l. }2 |( y
  12. })- {& o5 x# N# J( ]$ q8 t0 L( R
  13. - k3 A, q  k& w+ g- p$ ^
  14. document.write(vm.$data === data) // true8 H/ p) d6 z" u( V
  15. document.write("<br>") // true
    - x5 V# f9 B, Q8 O3 r7 G: y4 @
  16. document.write(vm.$el === document.getElementById('vue_det')) // true
    4 s. \' M3 q% o6 o7 ]* Z
  17. </script>
复制代码

  t4 Z6 s  z, J8 a
8 x6 z! O0 |9 `7 {$ q9 x) ]1 Q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-6-20 03:10 , Processed in 0.072477 second(s), 20 queries .

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