• (19)打鸡儿教你Vue.js


    了解vue2.x的核心技术

    建立前端组件化的思想

    常用的vue语法

    vue-router,vuex,vue-cli

    使用vue-cli工具

    Vue框架常用知识点

    vue核心技术

    集成Vue

    重点看,重点记

    模板语法,条件渲染,列表渲染
    vuex,vue-router

    v-bind属性绑定,事件绑定
    Class与Style绑定

    workflow工作流
    单页面
    Cli工具登录环境

    1. vue常用模板语法
    2. 列表渲染、条件渲染
    3. Class与style绑定
    4. vue事件绑定与处理
    5. vue计算属性computed, watch
    6. vue-cli快速创建工程
    7. vue的组件思想,代码规范
    8. vue-router介绍
    9. 认识vuex,组件间的通信方式
    10. 前端调试方法,vue组件调试方法

    image.png

    image.png

    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
    
    or Wget:
    
    wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
    
    export NVM_DIR="${XDG_CONFIG_HOME/:-$HOME/.}nvm"
    [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
    

    image.png

    image.png

    image.png

    开发环境:
    ide,node.js,调式环境,工程环境

    node --version
    
    npm i -g vue-cli
    
    vue --version
    

    环境:
    ide: webstrom,vscode

    npm: vue-cli,webpack,cnpm,nvm

    Chrome: Vue调式插件

    Vue:
    声明式渲染
    条件渲染
    列表
    事件

    热部署:gulp,webpack

    认识样式:sass,postcss

    模板语法
    计算属性
    Class,Style绑定
    条件渲染
    列表渲染
    事件处理
    表单输入绑定

    组件基础,生命周期,模块化的思想

    组件:
    组件通信方式:props,$parentemit eventVuex

    动画,vue-router, Vue-resource

    常用api:
    vue-use
    props
    dom

    部署,服务器端渲染,打包编译

    vue,基础概念,组件,api,部署

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    hello world!!
    </body>
    </html>
    

    BootCDN
    稳定、快速、免费的前端开源项目 CDN 加速服务

    Vue 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合

    image.png

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .bg {
                color: red;
            }
        </style>
        <script src="https://cdn.bootcss.com/vue/2.6.10/vue.min.js"></script>
    </head>
    <body>
    <div class="bg">
        hello world!!
        {{msg}}
    </div>
    <script>
        new Vue({
            el: '.bg',
            data: {
                msg: 'hello vue!'
            }
        })
    </script>
    </body>
    </html>
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .bg {
                color: red;
            }
        </style>
        <script src="https://cdn.bootcss.com/vue/2.6.10/vue.min.js"></script>
    </head>
    <body>
    <div class="bg" id="app">
        hello world!!
        {{msg}}
    </div>
    <script>
        new Vue({
            el: '#app',
            data: {
                msg: 'hello vue!'
            }
        })
    </script>
    </body>
    </html>
    

    vue.js cdn使用

    模板语法

    vue的文件结构:
    template
    script
    style

    模板语法包含插值,指令

    // 错
    {{template}}
    <script>
     new Vue({
      el: '#app',
      data: {
       msg: 'hello vue!!',
       count: 0,
       template: '<div>hello template</div>'
      }
    })
    </script>
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .bg {
                color: red;
            }
        </style>
        <script src="https://cdn.bootcss.com/vue/2.6.10/vue.min.js"></script>
    </head>
    <body>
    <div class="bg" id="app">
        hello world!!
        {{msg}}
        <div v-html="template"></div>
    </div>
    
    <script>
        new Vue({
            el: '#app',
            data: {
                msg: 'hello vue!',
                template: '<div>hello dashucoding</div>'
            }
        })
    </script>
    </body>
    </html>
    
    <!DOCTYPE html>
    <html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml" xmlns:v-on="http://www.w3.org/1999/xhtml">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .bg {
                color: red;
            }
        </style>
        <script src="https://cdn.bootcss.com/vue/2.6.10/vue.min.js"></script>
    </head>
    <body>
    <div class="bg" id="app" v-bind:id="bg1">
        hello world!!
        {{msg}}
        {{count}}
        <div v-html="template"></div>
        <a v-bind:href="url">百度</a>
        <a :href="url">百度</a>
        <button type="button" v-on:click="submit()">加</button>
        <button type="button" @click="submit()">加</button>
    </div>
    
    <script>
        new Vue({
            el: '#app',
            data: {
                bg1: 'app-bind',
                msg: 'hello vue!',
                template: '<div>hello dashucoding</div>',
                url: 'http://www.baidu.com',
                count: 0
            },
            methods: {
                submit: function() {
                    this.count++
                }
            }
        })
    </script>
    </body>
    </html>
    

    vue文件结构
    插值语法{{msg}}
    数据
    js表达式
    指令

    @click
    v-if
    :href
    

    计算属性与侦听器

    计算属性:computed

    侦听器:watch

    使用场景:
    image.png

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="https://cdn.bootcss.com/vue/2.6.10/vue.min.js"></script>
    
    </head>
    <body>
    <div id="app">
        {{msg}}
        <p>{{msg1}}</p>
    </div>
    <script>
        var arr = 'da'
        var app = new Vue({
            el: '#app',
            data: {
                msg: 'Hello Vue!',
                another: 'another hello'
            },
            // 监听
            watch: {
                msg: function (newval, oldval) {
                    console.log('newval is:'+newval)
                    console.log('oldval is:'+oldval)
                }
            },
            computed: {
                msg1: function () {
                    return 'computed:' + this.msg + "," + this.another + arr
                }
            }
        })
    </script>
    </body>
    </html>
    

    arr改变时不会变化,只有msg1里面的内容改变才会发生变化

    watch异步场景,computed数据联动

    条件渲染,列表渲染,Class与Style绑定

    条件渲染:

    v-fi
    v-else
    v-else-if
    
    v-show
    

    列表渲染:

    v-for
    
    <div id="app">
     <div v-if="count>0">
     </div>
     <div v-else>
     </div>
    </div>
    
    <div v-for="item in list">{{item}}</div>
    <div v-for="item in list">{{item.name}}</div>
    
    <script>
    new Vue({
     el: '#app',
     data: {
     list: [{
     name:
     age
     },{
     }]
    }
    })
    
    v-bind:style="{ 'color': 'red' }"
    
    v-bind:style="styleMsg"
    :class="{ 'active': ture }"
    :style="styleMsg"
    
    data: {
     style: {
     colord: red
     },
     
     styleMsg: {
      color: 'red',
      textShadow: '0 0 5px green'
     }
    }
    
    <div v-show=""
    :class="[ 'active', 'add', 'more', { 'another' : ture } ]"
    :style="styleMsg">
    

    工程化,页面代码规范,调式vue


    请点赞!因为你的鼓励是我写作的最大动力!

    官方微信公众号

    吹逼交流群:711613774

    吹逼交流群

  • 相关阅读:
    css实现文字渐变
    js 模拟window.open 打开新窗口
    在centos上安装nodejs
    css多行省略
    Vue 中渲染字符串形式的组件标签
    vue 中结合百度地图获取当前城市
    vue-cli 项目实现路由懒加载
    JavaScript学习-2循环
    早期自学jQuery-一入门
    JavaScript学习-1
  • 原文地址:https://www.cnblogs.com/dashucoding/p/11140184.html
Copyright © 2020-2023  润新知