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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[Vue.js] Vue.js 起步

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-1 23:08:58 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
Vue.js 起步
每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
  1. var vm = new Vue({. A7 }, Y9 y& X3 u' d. o+ E$ o
  2.   // 选项+ m0 L, H& B: j) J3 P
  3. })
复制代码
接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
  1. <div id="vue_det">6 g: h* u5 [* J& C9 ^2 q
  2.     <h1>site : {{site}}</h1>' M! Q" z3 [) U7 v6 R9 o, V' M- e
  3.     <h1>url : {{url}}</h1>
    9 H) F3 P- J( z, ]+ t% \
  4.     <h1>{{details()}}</h1>
    4 a6 w( T. L4 [8 H! |: p$ \
  5. </div>" K2 W. U9 H( F& E6 x1 Z# a0 g
  6. <script type="text/javascript">
    " ?9 C7 M/ D* E5 X
  7.     var vm = new Vue({
    5 ~2 o- i' L( @- a& e8 r
  8.         el: '#vue_det',
    0 V& w; y0 U. S
  9.         data: {* Q3 L8 V; r& \) M0 b% B% X5 J$ Y1 L
  10.             site: "菜鸟教程",
    2 D* a) I3 o; A3 ^0 c
  11.             url: "www.runoob.com",9 ~! x) i4 R3 A& H( b% P3 P% K
  12.             alexa: "10000"4 O) C& |' `* i1 A0 b5 ~" j) C) p8 p
  13.         },+ E0 b, G2 m. ]" i- b
  14.         methods: {! Z/ Q+ w. R) y+ k8 w7 @" b  }
  15.             details: function() {/ v; Z3 }! T, n- K5 b* b; T
  16.                 return  this.site + " - 学的不仅是技术,更是梦想!";! A& N: W  g* w; k
  17.             }
    5 ?$ E) I& \  h2 z4 T3 k
  18.         }0 `5 |& l' Z9 O/ q( u8 w
  19.     })4 A% S; N5 q, q( y8 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">
    5 b2 K" l: c9 D- w
  2.     <h1>site : {{site}}</h1>9 D9 ]7 o) |! ?7 B1 T
  3.     <h1>url : {{url}}</h1>+ j$ S: `  g/ n/ \3 J
  4.     <h1>{{details()}}</h1>
    ! O' h% B2 I8 {6 P" f8 j
  5. </div>
复制代码
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
  1. <div id="vue_det">
    3 q% M2 R: m# _. u0 q) K, h
  2.     <h1>site : {{site}}</h1>" [, |: [/ |7 a/ Z; L$ I4 q; p
  3.     <h1>url : {{url}}</h1>7 d& y# H2 ]" o! n- d6 `
  4.     <h1>Alexa : {{alexa}}</h1>
    1 H" N$ ^! k4 g/ g% N
  5. </div>! }; S3 _- K$ N+ d6 |: q+ I$ @9 i
  6. <script type="text/javascript">
    : D& G" b6 a! p# ^) x" X, o
  7. // 我们的数据对象3 K# C$ ~" n3 y1 }
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}* E+ |, x3 Q. u; j3 O+ A
  9. var vm = new Vue({
    & p8 A1 R3 p8 }& H
  10.     el: '#vue_det',1 `- `' A% P& H: e
  11.     data: data
    8 X. i$ g) o- O- ]
  12. })
    & S0 S$ x- T0 y/ D9 H( {
  13. // 它们引用相同的对象!1 N, t$ Y$ j$ m& U  V) O5 ~
  14. document.write(vm.a === data.a) // true, P: {+ W) P  y& g* I6 c5 ]( `
  15. document.write("<br>")
    4 V% u6 o! |4 }  x$ {: p
  16. // 设置属性也会影响到原始数据
    7 q+ L; z7 ~, I* `6 p! P6 s
  17. vm.site = "Runoob": V) U/ t" P( {3 N; F0 s7 |2 f) u
  18. document.write(data.site + "<br>") // Runoob  ^2 A7 `, I; O3 }- q  T: I& b$ G

  19. $ }- m6 u- g5 e
  20. // ……反之亦然" s& H. N; X) N4 l; j
  21. data.alexa = 1234
    ! x  D- k6 o5 l! H2 f. R
  22. document.write(vm.alexa) // 1234! M; s& k, g+ q7 n
  23. </script>
复制代码
除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
  1. <div id="vue_det">
    + n7 j/ Y, y& k, m' I9 x8 w
  2.     <h1>site : {{site}}</h1>7 R. h3 x. w" G
  3.     <h1>url : {{url}}</h1>
    4 ~  s9 e& N( R! c/ k' [$ m- J
  4.     <h1>Alexa : {{alexa}}</h1>. m2 Q$ J8 d4 a& b' ~: t
  5. </div>
      W, F: y( u) A; J8 a
  6. <script type="text/javascript">
    # p# n8 \' V8 L. Q" {6 v
  7. // 我们的数据对象
    ! |4 c+ P: t- P$ K# a
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}$ }0 @2 P/ n+ m3 s
  9. var vm = new Vue({5 H3 X) \1 J4 Y* ]& U/ \
  10.     el: '#vue_det',% K' Y+ M8 e$ z( [9 b7 R3 B( K
  11.     data: data3 N# L! s7 J' e( f; k1 b" u
  12. })
    . j9 K1 Y! L# w6 \

  13. % C4 }7 q3 z) o# P# @- A
  14. document.write(vm.$data === data) // true0 C+ Z, q$ e1 E/ F
  15. document.write("<br>") // true5 ^: b$ P1 c# q; w. K
  16. document.write(vm.$el === document.getElementById('vue_det')) // true1 Q( e/ E5 y8 ?3 Y7 _
  17. </script>
复制代码
* M; s4 \  s: [" ^# G8 |! |
/ G8 }1 a# N6 Q0 ^. ~& ]; ?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-3-16 18:51 , Processed in 0.051153 second(s), 20 queries .

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