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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[Vue.js] Vue.js 起步

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-1 23:08:58 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
Vue.js 起步
每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
  1. var vm = new Vue({) |/ E0 I* I, Y8 P* _, r+ S1 h7 j5 S. B
  2.   // 选项
    9 @( `3 S; ]& w# O0 ?
  3. })
复制代码
接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
  1. <div id="vue_det">
    , H+ i; D! _" H8 P7 l" k: m
  2.     <h1>site : {{site}}</h1>
    * V+ P8 J! i- I% X7 Q  h
  3.     <h1>url : {{url}}</h1>
    ; G/ b" h; y' Q" [! L1 E5 {- c0 |
  4.     <h1>{{details()}}</h1>* }4 K0 F) A: s
  5. </div>
    ) W8 Z1 ]6 Y" j5 ]. Q- c5 ^& t, `
  6. <script type="text/javascript">
    + h+ x! L/ a2 ?4 Y/ y
  7.     var vm = new Vue({
    + D$ x# \5 N: N
  8.         el: '#vue_det',8 b3 R% f) y6 G5 P
  9.         data: {2 ^% F' k' m$ w! j, ?2 f8 q4 `
  10.             site: "菜鸟教程",
    $ @4 S& \2 P( p- U& ^
  11.             url: "www.runoob.com",
    # O. h3 k$ D9 M- u! Q! j( ^5 t( a
  12.             alexa: "10000"4 i" C: T/ X) p: b* l% F
  13.         },
    3 c# q& N3 z5 u6 }( @) e2 @
  14.         methods: {
    % X9 Z" r7 ?! N- y& Z9 l9 E
  15.             details: function() {' F8 a" t) f* m) r9 c2 g6 K
  16.                 return  this.site + " - 学的不仅是技术,更是梦想!";
    7 |$ m, I# k; D& G# X. w9 u
  17.             }
    , M9 H3 \& r2 A( q& H
  18.         }9 c2 H& P; }* K2 y' B
  19.     })' A% E; p2 ?# b+ n9 c( c8 n7 X% g
  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">
    ! C6 i1 r' L6 T9 ?+ R; h- C" ^
  2.     <h1>site : {{site}}</h1>+ P7 ]1 p/ Q+ x! [7 g
  3.     <h1>url : {{url}}</h1>
    % ?2 W. c. t5 m3 e! C% z, Q
  4.     <h1>{{details()}}</h1>$ |$ S* p1 V$ W1 D6 p0 v
  5. </div>
复制代码
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
  1. <div id="vue_det">
    6 Z# C+ Y: [  d. `: [
  2.     <h1>site : {{site}}</h1>2 K% o9 A4 j+ ?) n) L# T5 r
  3.     <h1>url : {{url}}</h1>  t* @( x5 u5 `) V8 m9 P& J" c
  4.     <h1>Alexa : {{alexa}}</h1>2 _9 b5 h/ f- J% ^2 C  i" g1 K# u, F, `
  5. </div>  v; K; q4 x( O: v0 v; _) _
  6. <script type="text/javascript">! d& Y* }) W% J; w8 H2 M" I
  7. // 我们的数据对象
    $ z' c, E6 r! Y- C9 U# D
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}7 O& h1 S3 J; X
  9. var vm = new Vue({* y5 E! k7 P! b
  10.     el: '#vue_det',5 }% G. T# H% T5 C: O
  11.     data: data
    $ G/ a# B4 l" K5 z' k: i+ {
  12. })
    5 x" ~' l2 R% C( [: l
  13. // 它们引用相同的对象!
    # z& s9 R7 r( R+ T
  14. document.write(vm.a === data.a) // true
    ( k# C7 b  v4 L
  15. document.write("<br>")4 T0 J# @3 }( Z! U& L  a3 B
  16. // 设置属性也会影响到原始数据3 K/ H/ Q7 n; A
  17. vm.site = "Runoob"
    0 X# O2 d% T  q$ b& u. K9 v
  18. document.write(data.site + "<br>") // Runoob
    ! L, B, ]! Q" u
  19. 4 x9 q6 l* N9 E( x* J5 V
  20. // ……反之亦然
    8 Y2 B% ^7 ^. V, C
  21. data.alexa = 1234$ K0 O0 E6 J2 F/ B1 a
  22. document.write(vm.alexa) // 1234
    0 a, z: k: Z. [  ^1 ~+ O1 t9 Z
  23. </script>
复制代码
除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
  1. <div id="vue_det">
    ' G' l) {# i" J: L" y- K0 t+ {
  2.     <h1>site : {{site}}</h1>) y3 h/ ?5 u. S( h2 G; z
  3.     <h1>url : {{url}}</h1>
    ' y1 i% G; F  _( q( ]  v+ |
  4.     <h1>Alexa : {{alexa}}</h1>
    & B# [& ^  r1 A8 g7 @4 F0 r. u
  5. </div>" s: `5 L! \% T# O5 G( X
  6. <script type="text/javascript">  T: |2 ?; }5 E7 x) W' @
  7. // 我们的数据对象) Z" K* [; j3 X# h
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}" _- l  [9 ~0 t2 s
  9. var vm = new Vue({
    ' W+ b( k! p( R& q4 ~6 \
  10.     el: '#vue_det',+ P2 {; e7 m- S4 t
  11.     data: data
    ! y- W( V5 c" p, D, a: I; \
  12. })& X$ u9 D, Y5 t! a5 X
  13. $ F! ]( O8 j5 T& g9 A: u" w( J  f
  14. document.write(vm.$data === data) // true
    0 T) B/ i" G0 m% U# G2 _9 P
  15. document.write("<br>") // true
    6 E' D# y' b+ q- [8 }5 I) a
  16. document.write(vm.$el === document.getElementById('vue_det')) // true8 ~3 p' i6 K. H% Y+ S% D. l* ~, ]4 P
  17. </script>
复制代码
0 T) _& a3 B1 f; c6 V, y( _

4 y, v6 O& H# c3 b
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-5-2 15:29 , Processed in 0.076927 second(s), 20 queries .

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