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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[Vue.js] Vue.js 起步

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-1 23:08:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Vue.js 起步
每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
  1. var vm = new Vue({, [& i# b/ v3 N8 O% a
  2.   // 选项
    + U* x! K  U8 r: D0 A: ]) M6 S
  3. })
复制代码
接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
  1. <div id="vue_det">% b5 n" @" {+ T" |9 ^" z6 h, G
  2.     <h1>site : {{site}}</h1>
    $ b) x  n9 E4 K6 n. ?
  3.     <h1>url : {{url}}</h1>, B# d2 g3 L8 r; |" M) c
  4.     <h1>{{details()}}</h1>; _8 I. @7 |: r7 R
  5. </div>
    4 w0 O- f& j4 v9 s, c1 m" ]
  6. <script type="text/javascript">
    8 s/ e6 I, G5 v% Z+ I2 P
  7.     var vm = new Vue({( x; Q: l6 `' K, d0 i
  8.         el: '#vue_det',% s" v: D' k$ u0 l- p% f- y: S$ ]
  9.         data: {4 O! V3 C6 q% [* v5 O
  10.             site: "菜鸟教程",7 b# q8 H. P( U  t
  11.             url: "www.runoob.com",
    % F( A0 C% A. L2 U  W) l& R
  12.             alexa: "10000"5 P0 Y) t, O8 w
  13.         },5 I9 |5 }! Y. R' Y6 Z- ~
  14.         methods: {: Y, W% Z9 Q8 P2 N0 T$ e5 ]: X, P
  15.             details: function() {) a/ O. E- J) I  _8 a; z1 h
  16.                 return  this.site + " - 学的不仅是技术,更是梦想!";9 O) Y) i; `: b  k% ~
  17.             }
    . i( K( G+ u0 q# _7 H$ Z
  18.         }
    / `8 N" r, {- Y2 `( u  s
  19.     })
    ! k. j7 ]" n* j! f$ [
  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">4 W* A' s. W) @& F$ F  L  {& M; M4 h
  2.     <h1>site : {{site}}</h1>" {6 d" W9 f% M  i
  3.     <h1>url : {{url}}</h1>  A* _- ]- K* y. t+ B0 `1 T- T. i
  4.     <h1>{{details()}}</h1>
    ! |# J. z* W8 l, p
  5. </div>
复制代码
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
  1. <div id="vue_det">2 F$ u. D& w/ a- g8 l0 G4 T
  2.     <h1>site : {{site}}</h1>
      T1 Z9 I2 z5 x' T" M+ y% Y6 W
  3.     <h1>url : {{url}}</h1>
    8 y7 t% W! i  {1 i9 s& h" X) L
  4.     <h1>Alexa : {{alexa}}</h1>4 f( v0 D; p) I3 ]
  5. </div>6 T3 e+ h* k& v8 c6 ?
  6. <script type="text/javascript">
    5 r+ }+ w7 V8 M% X
  7. // 我们的数据对象& ~2 m0 f$ |, W  j6 k! y& N
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
    . U7 }, ~# W& _* c* T
  9. var vm = new Vue({8 z# @' `  n& B9 V# @8 u4 R
  10.     el: '#vue_det',: T  h6 B# _4 z4 N
  11.     data: data! z1 Z- O9 C# t" m) s
  12. }): C" c% Z" I1 c' w4 u9 k; p
  13. // 它们引用相同的对象!
    6 w" x: u* ^% w0 p
  14. document.write(vm.a === data.a) // true* {1 T& _! X! z' C3 }" E0 g! E7 W4 V; J
  15. document.write("<br>")
    " k8 |! c4 t! D, q
  16. // 设置属性也会影响到原始数据
    - f/ @, Q! Z# C/ V+ V) R* @$ q
  17. vm.site = "Runoob"
    5 t1 S0 k1 {6 s! R$ D: f6 V
  18. document.write(data.site + "<br>") // Runoob( K& r; i/ i4 o  @
  19. ; ~) C- K$ a- m# J) I
  20. // ……反之亦然
    2 \" `: ]; _/ ?! H
  21. data.alexa = 1234, g. O& V3 B4 G1 `' E3 _7 i
  22. document.write(vm.alexa) // 1234
    * a5 C6 N' `0 [1 ]/ S
  23. </script>
复制代码
除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
  1. <div id="vue_det">/ }* {9 D: [4 j: R& Z4 w& N) I
  2.     <h1>site : {{site}}</h1>
    * y  u9 `$ u( O! A3 r) B/ Z
  3.     <h1>url : {{url}}</h1>
    - |! t. f/ _' c9 ]% D% {+ E2 l
  4.     <h1>Alexa : {{alexa}}</h1>
    8 ^$ J7 Z0 c( h  C1 h
  5. </div>
      u& Y0 g0 ^8 Y0 p6 I
  6. <script type="text/javascript">. [/ i5 |! a! _5 M
  7. // 我们的数据对象
    * @  a+ ?* C: p' T9 P' l0 b
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
    8 F. H, Q( G* q! M8 l
  9. var vm = new Vue({
    7 p# N$ }7 K8 I. ]  X
  10.     el: '#vue_det',
    : v8 ~0 Q$ \& q% Z; P. K  @+ ~
  11.     data: data
    , z: V4 R7 S  i7 w6 N: R6 J, P
  12. })# w; ]5 L; y0 f. p3 D
  13. ; v- H% u; i6 G0 E9 A8 i
  14. document.write(vm.$data === data) // true+ d3 @* Q6 q- l, A
  15. document.write("<br>") // true2 s" m6 n. t& R$ }2 y2 Y4 [
  16. document.write(vm.$el === document.getElementById('vue_det')) // true
    7 |; _. y" y6 q  \
  17. </script>
复制代码
: s; {4 x1 H8 f" ]

# o. J! D7 ~' ^' @0 f+ m4 U
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-3-16 17:24 , Processed in 0.049678 second(s), 19 queries .

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