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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[Vue.js] Vue.js 起步

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-1 23:08:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Vue.js 起步
每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
  1. var vm = new Vue({
      k5 Y6 W# }7 }* \" p8 b5 W8 q
  2.   // 选项1 M- o; ~0 d8 B; g' y7 }% O
  3. })
复制代码
接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
  1. <div id="vue_det">1 m6 x4 N2 j& m$ F# P
  2.     <h1>site : {{site}}</h1>/ n" f$ E3 p6 @$ E, y' _
  3.     <h1>url : {{url}}</h1>& K5 h$ \8 u, C( V4 S( F* \4 `
  4.     <h1>{{details()}}</h1>
    9 l  ]( p  d0 B3 a+ ^
  5. </div>
    : y9 |' J2 l# @" V, P" g- F
  6. <script type="text/javascript">' D8 n. {6 ^: L2 v$ K* S
  7.     var vm = new Vue({4 B( k/ \+ V1 d# A- S
  8.         el: '#vue_det',
    7 F( Y, M6 x7 U6 I8 V% d
  9.         data: {
    " C- F8 f' o% ~6 f
  10.             site: "菜鸟教程",6 N" g+ u* y6 l- c# c5 X/ `
  11.             url: "www.runoob.com",* r6 ^+ T: \/ `/ k2 l
  12.             alexa: "10000": c2 E1 }% f5 g
  13.         },, K' @! d: T+ U  Y& ?' U
  14.         methods: {
    ; |1 U- o. @2 f/ ]' l& Z
  15.             details: function() {' V, j9 N$ A. J* v. I( N
  16.                 return  this.site + " - 学的不仅是技术,更是梦想!";6 l# x, Q( c# O6 o/ ~+ N2 ~: w
  17.             }
    3 Z" p5 ]# i" o7 d7 O8 f; t. d* G
  18.         }. c2 C) f2 P5 `* n; V  O) x
  19.     })2 z. e- A3 _+ |4 H" G+ q" {+ V3 J) I
  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">9 H$ N* G8 ?$ F/ C* v7 `9 t- I; G, L
  2.     <h1>site : {{site}}</h1>
    , r7 _. V. o& x' b
  3.     <h1>url : {{url}}</h1>
    1 N5 S4 p3 L. K. k% a( R0 |
  4.     <h1>{{details()}}</h1>) d& K  [) E, V4 S1 k
  5. </div>
复制代码
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
  1. <div id="vue_det">
    ; P, g5 T; w: k+ ~& H
  2.     <h1>site : {{site}}</h1>
    , I7 x5 ~/ _9 G3 }
  3.     <h1>url : {{url}}</h1>$ O1 z) ?9 z+ }2 W6 x
  4.     <h1>Alexa : {{alexa}}</h1>2 S4 V& S8 V( X+ t' _
  5. </div>
    9 Q+ M9 x1 x/ k$ ?
  6. <script type="text/javascript">3 ~+ I; l, D0 K
  7. // 我们的数据对象
    ) Z! u/ k- E6 v$ C! @2 D6 @9 P0 V+ M
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}) `' h3 A) A( b1 ]1 f7 q
  9. var vm = new Vue({9 r9 {: O7 n& p" q* W
  10.     el: '#vue_det',
    " e( r  B% p. X$ a4 x* C2 X6 M5 i/ E
  11.     data: data. R! Y5 i( }: h5 ~
  12. })( b+ q) a5 }( G* s/ l* m( O; e1 [
  13. // 它们引用相同的对象!4 Z& X9 O8 D- s2 m* }
  14. document.write(vm.a === data.a) // true: l3 d3 r+ ?: o. @* d0 D/ @
  15. document.write("<br>")& l! T4 ~4 u# P3 @7 L; x
  16. // 设置属性也会影响到原始数据/ D4 R6 x* m0 X  A
  17. vm.site = "Runoob"
      _% c. e; L( L
  18. document.write(data.site + "<br>") // Runoob
    8 a- D4 p/ K3 |2 ?

  19. ( {+ i7 v" b6 |7 K8 ^# [
  20. // ……反之亦然2 f" n# [5 b; I3 W9 d/ ^3 }
  21. data.alexa = 1234. ]$ u( A0 ^) M8 i; d7 x* V
  22. document.write(vm.alexa) // 12343 F5 [, t. A: [, a% i
  23. </script>
复制代码
除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
  1. <div id="vue_det">
    " {. H! x( a& p! A! [) {
  2.     <h1>site : {{site}}</h1>6 y, d; k" \9 @9 Q8 T
  3.     <h1>url : {{url}}</h1>
    8 Z* Q6 s% F6 F8 g2 J2 L( _/ ?2 q
  4.     <h1>Alexa : {{alexa}}</h1>
    - R7 P  x+ n: k. j
  5. </div>5 I: r, d$ Y/ ]6 s3 B  ^/ \4 U
  6. <script type="text/javascript">
    2 g! V3 {, f1 ~. E, s, D8 v4 m' B7 n
  7. // 我们的数据对象$ \0 E; j8 z8 j# s3 V7 y) Q; H5 [$ _
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
    5 b- O( Z. y$ u7 V
  9. var vm = new Vue({
    ' K7 B' T3 Z6 N9 w
  10.     el: '#vue_det',
    . c# f) e' s) o& T4 o: b
  11.     data: data2 w  S' I7 J# P
  12. })
    ; h' r9 J2 P$ b4 `
  13. : \' N% {9 x* `' |8 l
  14. document.write(vm.$data === data) // true
    ; Z/ }. b* Z" ^$ l0 B1 {5 C; [
  15. document.write("<br>") // true" a$ H# h6 Y* \; ^  q3 \" r
  16. document.write(vm.$el === document.getElementById('vue_det')) // true
    ' M/ I4 m+ B- {7 K/ _
  17. </script>
复制代码
  o) J; S* J4 i! ~+ F2 T: g* E, G

# f9 q% g: W" D6 ?% H, j  k' \
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-3-16 18:53 , Processed in 0.053891 second(s), 19 queries .

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