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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[Vue.js] Vue.js 起步

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-1 23:08:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Vue.js 起步
每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
  1. var vm = new Vue({! W2 s2 ~* o' E: e7 s) b$ k
  2.   // 选项
    5 k: X' E. B" n" D$ K) J7 A+ o
  3. })
复制代码
接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
  1. <div id="vue_det">5 A3 |4 e9 A% {4 n# b  m# K
  2.     <h1>site : {{site}}</h1>
      Y. ]4 n9 a( j* O) u% B
  3.     <h1>url : {{url}}</h1>1 ?- @# u# m$ b, L- S
  4.     <h1>{{details()}}</h1>
    " x3 j5 I/ Y% [3 {; G$ @/ V% [
  5. </div>
    3 N  n- X9 D6 N& g# g
  6. <script type="text/javascript">6 N( y7 ~, p; W1 A0 f$ o2 H0 X
  7.     var vm = new Vue({
    . h9 k' S$ v0 x: Q8 P1 [% Z! w2 R# C
  8.         el: '#vue_det',- n. K5 ]. \3 o, l) t* F
  9.         data: {. U! U: X, ]3 ]1 v; j( w
  10.             site: "菜鸟教程",- n: C0 y& h  Z  D8 ^% A5 r! m
  11.             url: "www.runoob.com",
    1 V/ ?) X! e& r# |. r2 C7 q+ I. ^
  12.             alexa: "10000"
    & e# R' L/ {# s, P
  13.         },
    8 B- |$ F: Y" I9 D
  14.         methods: {  M: n6 Y$ Q$ x1 }6 @
  15.             details: function() {. J% ?1 U" \8 _$ c- ]4 d9 I  |" z
  16.                 return  this.site + " - 学的不仅是技术,更是梦想!";
    ' i  O( J1 e7 j0 t7 ]1 o: H7 f
  17.             }
    6 ]/ y9 u' E: q3 }3 T$ [* h
  18.         }4 O7 _* x+ i' p$ z; Y
  19.     })2 V6 N  I8 @6 R! |" 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">. Z+ X8 e  p9 a/ f; @
  2.     <h1>site : {{site}}</h1>
    4 b! _, k3 c8 ^4 f! L. r3 D: a
  3.     <h1>url : {{url}}</h1>$ b6 P. U- R) s! r4 I3 B. X
  4.     <h1>{{details()}}</h1>
    3 y* Y0 J* ?' e) G! v, Y) P! M' [
  5. </div>
复制代码
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
  1. <div id="vue_det">/ m* @# d6 _. i
  2.     <h1>site : {{site}}</h1>
    # i! k- E% l- r. F: V/ h
  3.     <h1>url : {{url}}</h1>% `$ q( w  B! e: B2 S; b
  4.     <h1>Alexa : {{alexa}}</h1>
    : c, Y, V7 |. S/ O9 V7 l/ ^
  5. </div>8 v1 A. U5 k0 @; ]+ j. Q/ N
  6. <script type="text/javascript">
    ) Q) g2 X" V" t' F7 a  x' e
  7. // 我们的数据对象
    ( V7 e: b6 a7 W+ \* o
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
    0 L/ a) `  O. [6 P8 c" x7 f
  9. var vm = new Vue({& r- c5 E2 J- P
  10.     el: '#vue_det',$ M/ k4 v9 V4 k* r
  11.     data: data. }* B5 @' C1 N" ^* I
  12. })
      {+ D1 O+ B" I/ b: c# X
  13. // 它们引用相同的对象!
    ( G9 ]7 t6 x: F
  14. document.write(vm.a === data.a) // true2 Y# R, O6 ]0 ^7 m5 R8 h% o3 w
  15. document.write("<br>")
    1 }0 j3 R# z9 f6 k9 w0 c
  16. // 设置属性也会影响到原始数据5 w0 y: i- s, N& A( h7 J) B
  17. vm.site = "Runoob"8 J6 P- f9 C% w1 P5 F
  18. document.write(data.site + "<br>") // Runoob
    + C* w, m3 `6 E: h6 `9 X$ H
  19. ) u9 r$ ~5 P" b6 s1 j
  20. // ……反之亦然* Q# l4 p9 t; M9 j
  21. data.alexa = 12343 l, }4 F& x7 E
  22. document.write(vm.alexa) // 1234
    ( I8 T3 @6 U1 v4 S/ A) q, Y
  23. </script>
复制代码
除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
  1. <div id="vue_det">" ~3 w9 L* b# Y. Z5 x0 b0 s. V
  2.     <h1>site : {{site}}</h1>! N' v, k3 d3 g' _: F3 [
  3.     <h1>url : {{url}}</h1>" R, b4 X0 S) i/ o; Y+ R+ B
  4.     <h1>Alexa : {{alexa}}</h1>8 g2 K6 n( x. P! R7 q+ v
  5. </div>' `2 n4 G! \9 q: m( t
  6. <script type="text/javascript">1 f3 E0 {# U: s( Y
  7. // 我们的数据对象1 l2 ]( {% i( j# y. o5 |
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}, ?2 t. J: Y2 m
  9. var vm = new Vue({
    " B: c+ @" O/ E( r1 k2 [2 C" X- \
  10.     el: '#vue_det',
    4 E  v$ k  }; c
  11.     data: data
    ' A/ q2 ?) q, ^; e
  12. })0 v8 `8 O5 J  b: s2 ^' E

  13. , m; R! `/ l, Q7 @, B7 ?
  14. document.write(vm.$data === data) // true4 [. @. a2 z6 v9 V
  15. document.write("<br>") // true# I4 j& L& Q8 V! v/ G7 _
  16. document.write(vm.$el === document.getElementById('vue_det')) // true
    ' |( X, F. Y3 O
  17. </script>
复制代码
) h! A0 l* [4 g$ Y/ m3 e
" s& Z6 d8 C( w) W
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-12-22 17:30 , Processed in 0.141233 second(s), 19 queries .

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