美文网首页跨平台
vue.js之入门第一篇(HelloWorld+创建Vue项目)

vue.js之入门第一篇(HelloWorld+创建Vue项目)

作者: 平安喜乐698 | 来源:发表于2019-03-09 17:35 被阅读0次
    目录
    
    
    

    一款渐进式框架(对html、css、javascript进行了封装,便于更快捷方便地构建网页)。
    数据双向绑定、自定义组件

    引入Vue.js

    在 html文件的head标签内
    
    方式一
        下载vue.min.js导入项目,并通过<script src="相对路径"></script>本地引入
        下载地址:https://vuejs.org/js/vue.min.js
    
    方式二
        国内1
        <script src="https://cdn.bootcss.com/vue/2.4.2/vue.min.js"></script>
        国内2
        <script src="https://unpkg.com/vue/dist/vue.js"></script>
        国内3(学习,新版本)
        <script src="https://cdn.jsdelivr.net/npm/vue"></script>
        国内4(生产模式下,建议指定版本号,避免新版本造成不可预料后果)
        <script src="https://cdn.jsdelivr.net/npm/vue@2.6.8/dist/vue.min.js"></script>
        国外1
        <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.1.8/vue.min.js"></script>
    
    1. Hello World
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Hello World</title>
    <script src="https://cdn.bootcss.com/vue/2.4.2/vue.min.js"></script>
    </head>
    <body>
    <div id="app">
      <p>{{ message }}</p>    <!--使用 属性-->
      <p>{{ sex }}</p>        <!--使用 属性-->
      <p>{{ boy() }}</p>      <!--使用 方法-->
    </div>
    
    <script>
    new Vue({      <!--实例化一个Vue-->
      el: '#app',  <!--对应上面的div(的id),仅影响对应div-->
      data: {      <!--存放 属性-->
        message: 'Hello World!',
        sex: 'boy',
      },
      methods: {  <!--存放 方法-->
        boy: function() {  
          return  this.sex + " 男子汉大丈夫!";
        },
      }
    })
    </script>
    </body>
    </html>
    
    运行结果

    获取属性并修改

    <script>
    var data = { message: 'Hello World!',sex: 'boy',age: 10000}
    var vm = new Vue({
        el: '#app',
        data: data
    })
    vm.message = "Hello"
    data.age = 999999
    document.write(vm.message === data.message)   // true
    document.write(vm.$data === data) // true 引用的是同一个对象
    document.write(vm.$el === document.getElementById('app')) // true
    </script>
    

    说明:

      1、当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,视图将会产生“响应”,即匹配更新为新的值。创建Vue之后再添加的属性则不会如此,可以在data中预先设置。
      2、Object.freeze(变量) 可阻止其被修改
        var obj = {
          foo: 'bar'
        }
        Object.freeze(obj)
        new Vue({
          el: '#app',
          data: obj
        })
      3、$前缀
        实例属性:
          vm.$el
        实例方法:
          vm.$watch('a', function (newValue, oldValue) {
            // 这个回调将在 `vm.a` 改变后调用
          })
      4、绑定文本
        {{message}} 
          实现数据绑定,当message发生变化时会更新界面。
          支持JS表达式,不支持语句
          模板表达式都被放在沙盒中,只能访问全局变量的一个白名单,如 Math 和 Date 。你不应该在模板表达式中试图访问用户定义的全局变量
        <span v-once>一次性插值,message发生变化后不会更新 {{ message }}</span>
      5、绑定html(很容易导致XSS 攻击)
        <span v-html="rawHtml"></span>
      6、给html元素绑定属性
      <div v-bind:id="dynamicId"></div>
      当isButtonDisabled的值为null、undefined 或 false时,该v-bind不会在button中渲染
      <button v-bind:disabled="isButtonDisabled">Button</button>
    
    1. 创建Vue项目

    搭建环境

    安装 cnpm
        npm install cnpm -g
    安装 vue-cli
        cnpm install --global vue-cli
    

    创建项目并运行

    创建项目(基于 webpack 模板。项目名必须全小写。一直回车。)
        vue init webpack my-project
    运行项目
        cd my-project
        cnpm install
        cnpm run dev
    浏览器输入http://localhost:8080,显示结果如下
    
    运行结果 项目结构

    项目结构说明

    build           项目构建(webpack) 相关代码
    config          配置目录,包括端口号等。
    index.html      首页入口文件,可以添加一些 meta 信息或统计代码。
    node_modules    npm加载的项目依赖模块
    package.json    项目配置文件
    README.md   项目的说明文档,markdown 格式
    src             程序员开发的目录。包含了:
        App.vue: 项目入口文件,我们也可以直接将组件写这里,而不使用components 目录。     
        assets: 放置图片
        components: 放了一个组件文件,可以不用。
        main.js: 项目的核心文件。
    static          静态资源目录,如图片、字体等。
    test            初始测试目录,可删除
    
    1. 牛刀小试(修改组件内容 重新运行)
    1、修改App.vue
    
    <template>
      <div id="app">
        <img src="./assets/logo.png">
        <router-view/>
        <!-- 修改部分 start -->
        <hello></hello>
        <!-- 修改部分 end -->
      </div>
    </template>
    
    <script>
    <!-- 修改部分 start -->
    import Hello from './components/HelloWorld'
    <!-- 修改部分 end -->
    export default {
      name: 'App'
    }
    </script>
    
    <style>
    #app {
      font-family: 'Avenir', Helvetica, Arial, sans-serif;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      text-align: center;
      color: #2c3e50;
      margin-top: 60px;
    }
    </style>
    
    2、components文件夹下修改HelloWorld.vue,编辑内容如下
    
    <template>
      <div class="hello">
        <h1>{{ msg }}</h1>
      </div>
    </template>
     
    <script>
    export default {
      name: 'hello',
      data () {
        return {
          msg: 'HelloWorld!'
        }
      }
    }
    </script>
    
    运行结果

    Vue的生命周期

    Vue的生命周期
    new Vue({
      data: {
        a: 1
      },
      created: function () {    // 实例被创建之后调用
        // `this` 指向 vm 实例
        console.log('a is: ' + this.a)
      }
      // 其他方法
    
    })
    

    相关文章

      网友评论

        本文标题:vue.js之入门第一篇(HelloWorld+创建Vue项目)

        本文链接:https://www.haomeiwen.com/subject/lsoeiftx.html