• Vue入门篇


    Vue-cli开发环境搭建

    1. 安装nodejs

    2. 设置缓存文件夹

    $ npm config set cache "D:vueProject
    odejs
    ode_cache"
    

    3. 设置全局模块存放路径(设置成功后,之后用命令npm install XXX -g安装以后模块就在D:vueProject odejs ode_global里)

    $ npm config set prefix "D:vueProject
    odejs
    ode_global"
    

    4. 基于node js 安装cnpm淘宝镜像

    $ npm install -g cnpm --registry=https://registry.npm.taobao.org
    

    5. 加入环境变量

    D:vueProject odejs ode_global

    6. 安装Vue

    $ cnpm install vue -g
    

    7. 安装vue-cli脚手架

    $ cnpm install vue-cli -g
    

    8. 根据模板创建项目

    $ vue init webpack mytest
    
    • Project name :项目名称 ,如果不需要更改直接回车就可以了。注意:这里不能使用大写,所以我把名称改成了vueclitest
    • Project description:项目描述,默认为A Vue.js project,直接回车,不用编写。
    • Author:作者,如果你有配置git的作者,他会读取。
    • Install  vue-router? 是否安装vue的路由插件,我们这里需要安装,所以选择Y
    • Use ESLint to lint your code? 是否用ESLint来限制你的代码错误和风格。我们这里不需要输入n,如果你是大型团队开发,最好是进行配置。
    • setup unit tests with  Karma + Mocha? 是否需要安装单元测试工具Karma+Mocha,我们这里不需要,所以输入n。
    • Setup e2e tests with Nightwatch?是否安装e2e来进行用户行为模拟测试,我们这里不需要,所以输入n。

     

    |-- build                            // 项目构建(webpack)相关代码
    |   |-- build.js                     // 生产环境构建代码
    |   |-- check-version.js             // 检查node、npm等版本
    |   |-- utils.js                     // 构建工具相关
    |   |-- vue-loader.conf.js           // webpack loader配置
    |   |-- webpack.base.conf.js         // webpack基础配置
    |   |-- webpack.dev.conf.js          // webpack开发环境配置,构建开发本地服务器
    |   |-- webpack.prod.conf.js         // webpack生产环境配置
    |-- config                           // 项目开发环境配置
    |   |-- dev.env.js                   // 开发环境变量
    |   |-- index.js                     // 项目一些配置变量
    |   |-- prod.env.js                  // 生产环境变量
    |-- src                              // 源码目录
    |   |-- components                   // vue公共组件
    |   |-- router                       // vue的路由管理
    |   |-- App.vue                      // 页面入口文件
    |   |-- main.js                      // 程序入口文件,加载各种公共组件
    |-- static                           // 静态文件,比如一些图片,json数据等
    |-- .babelrc                         // ES6语法编译配置
    |-- .editorconfig                    // 定义代码格式
    |-- .gitignore                       // git上传需要忽略的文件格式
    |-- .postcsssrc                       // postcss配置文件
    |-- README.md                        // 项目说明
    |-- index.html                       // 入口页面
    |-- package.json                     // 项目基本信息,包依赖信息等
    

      

    9. 安装工程依赖模块

    $ cd mytest && cnpm install

    10. 启动项目

    $ cnpm run dev
    

      

    属性绑定:

    v-bind: 或者 :

    <div id="root">
        <span v-bind:title="'this is '+title">hello world</span>
    </div>
    <script>
        new Vue({
            el:"#root",
            data:{
                title:"hello world"
            }
        })
    </script>
    

      

    事件绑定:

    v-on: 或者 @

    <div id="root">
        <h1 @click="handleClick">{{msg}}</h1>
    </div>
    <script>
        new Vue({
            el: "#root",
            data: {
                msg: "hello",
            },
            methods: {
                handleClick: function () {
                    this.msg = "world";
                }
            }
        })
    </script>
    

      

    双向数据绑定:

    v-model

    <div id="root">
        <input v-model="content">
        <div>{{content}}</div>
    </div>
    <script>
        new Vue({
            el:"#root",
            data:{
                content:"this is content"
            }
        })
    </script>
    

      

    计算属性:

    computed:

    <div id="root">
        姓<input v-model="firstName">
        名<input v-model="lastName">
        <div>{{fullName}}</div>
    </div>
    <script>
        new Vue({
            el:"#root",
            data:{
                firstName:"",
                lastName:""
            },
            computed:{
                fullName:function () {
                    return this.firstName+" "+this.lastName
                }
            }
        })
    </script>
    

      

    侦听器:

    watch

    <div id="root">
        姓<input v-model="firstName">
        名<input v-model="lastName">
        <div>{{fullName}}</div>
        <div>{{count}}</div>
    </div>
    <script>
        new Vue({
            el:"#root",
            data:{
                firstName:"",
                lastName:"",
                count:0
            },
            computed:{
                fullName:function () {
                    return this.firstName+" "+this.lastName
                }
            },
            watch:{
                firstName:function () {
                    this.count ++
                },
                lastName:function () {
                    this.count ++
                }
            }
        })
    </script>
    

      

    v-if 和v-show的区别:

    <div id="root">
        <div v-show="show">hello world</div>
    
        <button @click="handleClick">toggle</button>
    </div>
    <script>
        new Vue({
            el: "#root",
            data: {
                show: true
            },
            methods:{
                handleClick:function () {
                    this.show = !this.show;
                }
            }
        })
    </script>
    

      条件为false时:v-if 这个元素不复存在,v-show style="display:none"

    v-for:

    <div id="root">
    <ul>
        <li v-for="(i,index) in list" :key="index">{{i}}</li>
    </ul>
    </div>
    <script>
        new Vue({
            el: "#root",
            data: {
                list:[1,2,3]
            },
    
        })
    </script>
    

      key的存在是为了提高遍历性能。

    组件内使用v-for

    <template>
      <ul>
        <item-component v-for="item in items" :item="item"></item-component>
      </ul>
    </template>
    
    <script>
      export default {
        props: ['item']
      }
    </script>
    

      

  • 相关阅读:
    Atitit 数据库view视图使用推荐规范与最佳实践与方法
    Atitit mybatis快速开发 的sql api接口
    一个数据包经过路由器和交换机各会发生什么变化
    c preprocessor
    A database of opensource HTTP proxies written in python.
    google chrome os下载
    一道笔试题多字串查找
    一个老题:将正整数n分为若干num个不同的正整数之和
    web dev framework
    memory leakage
  • 原文地址:https://www.cnblogs.com/zenan/p/10560971.html
Copyright © 2020-2023  润新知