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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[Vue.js] Vue.js 起步

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-1 23:08:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Vue.js 起步
每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
  1. var vm = new Vue({
    8 U  y4 _" w! M; n
  2.   // 选项' o1 |5 m5 w/ e, d2 }3 M
  3. })
复制代码
接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
  1. <div id="vue_det">
    4 g) j2 H3 d7 {/ R
  2.     <h1>site : {{site}}</h1>
    7 f/ X9 Q5 E; q2 v0 F
  3.     <h1>url : {{url}}</h1>. s2 ?7 f6 i7 `* q# R2 o' d7 _$ A
  4.     <h1>{{details()}}</h1>
    2 T+ m2 z9 ^  f  ?2 X0 v
  5. </div>, T* P5 Y+ I- x0 p1 f- ^+ s
  6. <script type="text/javascript">' b' D5 U! Z% Q/ l5 }: l) Q# }9 P: z" ?
  7.     var vm = new Vue({
    + L  O( E  a: U8 Q9 s! @' i" z
  8.         el: '#vue_det',( c) Q0 y5 D1 l( C
  9.         data: {! M2 k+ L4 l4 R& M1 e
  10.             site: "菜鸟教程",
    : Y0 c3 G1 r: D3 U% \9 N
  11.             url: "www.runoob.com",1 r4 u7 f; M; n! [2 Q/ X8 j
  12.             alexa: "10000"
    5 p0 s6 [4 v: w8 k# {& B- A! h
  13.         },
    3 n' D# D% G$ {/ a" u7 s5 K
  14.         methods: {) }' \2 w' t3 C  T8 |8 P
  15.             details: function() {* T& F" u) ?4 }) m
  16.                 return  this.site + " - 学的不仅是技术,更是梦想!";
    ( ~* P/ s+ z0 z4 E1 B. b- O
  17.             }
    ' j' ?' y8 r2 \' k4 t/ T0 I
  18.         }1 c0 _. T" R7 M2 M6 d5 ?
  19.     })5 `! Q+ ]7 {0 h# G, q
  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">6 h, j7 `( L8 K) d
  2.     <h1>site : {{site}}</h1>
    & K6 O0 {/ t6 h
  3.     <h1>url : {{url}}</h1>
    . ^; m: W; B% O' Q, ]
  4.     <h1>{{details()}}</h1>
      p; V1 @+ P( i; z) K
  5. </div>
复制代码
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
  1. <div id="vue_det">
    + t8 S1 a4 g0 @8 m
  2.     <h1>site : {{site}}</h1>. p, R- f- N9 c% w) E
  3.     <h1>url : {{url}}</h1>, \2 J3 w: r1 k
  4.     <h1>Alexa : {{alexa}}</h1>* @4 a1 {3 f! e$ k9 m% y9 i' P
  5. </div>3 k2 ^9 l" @6 I
  6. <script type="text/javascript">
    $ N" I+ f3 T6 u4 K' S# a: n
  7. // 我们的数据对象
    / \. O  C/ a& A# d! u7 A" @
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
    3 f2 m% ^/ W: B7 w: {4 T' L
  9. var vm = new Vue({/ P0 M3 ~, f& n7 z% ]3 X$ A
  10.     el: '#vue_det',; \' f' a$ ~) i' U( R) _) v
  11.     data: data
    0 ], k& q4 I- O8 B, a! b  ]/ h
  12. })1 Q: u" ]$ H+ h. x8 R5 c# U
  13. // 它们引用相同的对象!! S7 \7 s1 p2 U+ V; D
  14. document.write(vm.a === data.a) // true% U: S8 Q1 y* |$ a3 d
  15. document.write("<br>")" H6 I3 j* L! d9 n
  16. // 设置属性也会影响到原始数据
    4 J" t- e7 ]0 m" Z
  17. vm.site = "Runoob"3 M* @% x& E. B1 \. j
  18. document.write(data.site + "<br>") // Runoob
    : b  V( E( @; L+ q

  19. 1 t4 A: y9 X: A, L  b: z# X9 m, X
  20. // ……反之亦然# l6 V- K6 i; A( {$ ^
  21. data.alexa = 12344 Y9 Q  {  q9 x$ s
  22. document.write(vm.alexa) // 1234! x- P/ P% q. S
  23. </script>
复制代码
除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
  1. <div id="vue_det"># F4 r" M& ^! U% T. s
  2.     <h1>site : {{site}}</h1>
    ( n$ Y+ I8 ~" X& j5 W, k# v) o
  3.     <h1>url : {{url}}</h1>
    1 e/ o" b6 h$ X8 V3 s
  4.     <h1>Alexa : {{alexa}}</h1>
    ; @+ r- @" ?( _) m( V& R
  5. </div>
    9 U' B- \1 g7 j* G
  6. <script type="text/javascript">) r) B3 X2 j6 _1 t) o7 {1 q+ b- W. m
  7. // 我们的数据对象! D& j* W. T) [
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}1 P! i2 F/ D5 w" p) v2 n
  9. var vm = new Vue({# u, y3 n) ]6 T2 v
  10.     el: '#vue_det',
    9 {, q# A6 G3 z4 ^- u- c  m
  11.     data: data/ W' ?1 }' v9 W& f
  12. })
    ' r: X, f+ [6 z8 f" c- n
  13. & e$ x& Y3 U8 h4 [' e# |0 U
  14. document.write(vm.$data === data) // true9 H0 j, H- E$ @( `: |7 R: F+ T% S
  15. document.write("<br>") // true
      s6 Q( F# t4 o, d
  16. document.write(vm.$el === document.getElementById('vue_det')) // true
    7 w3 w5 q# n+ h. _5 e9 g
  17. </script>
复制代码

. u8 z* V' g; z1 k7 J3 j
9 j3 Y- A. h* r5 L: \. o
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-3-17 20:02 , Processed in 0.053681 second(s), 20 queries .

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