1小时入手vue

八小时实现迷你版vuejs之二:vuejs 架构 什么是vuejs这里更多指的是 原版的vuejs的架构,当然tinyvue也是一样的。 我个人对vuejs的定义是:通过 directives 实现 data 和 DOM 的关联的一个框架。如果用一张图来定义大概是这样 更复杂点是这样的: 当然这里的data是广义的,包括初始化组件时传入的 data, props methods, computed 等一系列的方法和属性,把这些东西和D 阅读详情

1小时Vue

Vue Tutorial in 2018 - Learn Vue.js by Example的笔记,深入浅出,通俗易懂。

效果如下,在线演示地址:http://www.caishuxiang.cn/demo/190619vueproj/#/

安装Vue

​ 安装vue有三种方式,本次使用Vue CLI

Vue 提供了一个官方的 CLI,为单页面应用 (SPA) 快速搭建繁杂的脚手架。它为现代前端工作流提供了 batteries-included 的构建设置。只需要几分钟的时间就可以运行起来并带有热重载、保存时 lint 校验,以及生产环境可用的构建版本

​ 步骤:

  • 安装vue cli

    > npm install -g @vue/cli
    
  • 开始一个新的Vue项目

    > vue create vue-proj
    
  • 进入项目,开启服务,访问localhost:8080

    yarn serve
    

Vue组件

​ 组件是组成Vue应用的基本单元,可以看下vue-pro的工程目录

​ 这里的App.vue、Skill.vue就是组件,每个vue文件都是组件。

组件的结构

  • template 中放置的是html
  • script中是页面的逻辑
  • style中即样式信息
<template>
  ...
</template>

<script>
  ...
</script>

<style>
 ...
</style>

引入其他的组件

​ 如下所示:

<template>
  <!-- Other HTML removed for brevity -->
    <HelloWorld msg="Welcome to Your Vue.js App"/>
  <!-- Other HTML removed for brevity -->
</template>

<script>
import HelloWorld from './components/HelloWorld.vue'

export default {
  name: 'app',
  components: {
    HelloWorld
  }
}
</script>

Vue class和style绑定

scoped

​ style元素上使用了scoped,那么该style下面的写的css或者引用的外部css,只对所在component中的元素起作用.如下:

如何引入外部css资源

注意:加了scoped代表该css只在当前componet中元素生效

class的绑定

<template>
  <div class="skills">
    <div class="holder">
    
      <!-- Add this -->
      <div v-bind:class="{ alert: showAlert}"></div>

    </div>
  </div>
</template>
<script>
export default {
  name: 'Skills',
    data() {
        return {
          showAlert: true  // Add this
        }
  	},
  }
}
</script>

如上,只有在showAlert为true时,才该div的class属性加上alert的值。

class绑定多个值

<div v-bind:class="{ alert: showAlert, 'another-class': showClass }"></div>

style绑定

<div v-bind:style="{ backgroundColor: bgColor, width: bgWidth, height: bgHeight }"></div>
<script>
export default {
  name: 'Skills',
    data() {
        return {
          bgColor: 'yellow',
      	  bgWidth: '100%',
      	  bgHeight: '30px'
        }
  	},
  }
}
</script>

为了模板中代码的简洁,你也可以如下写

<div v-bind:style="alertObject"></div>
<script>
export default {
  name: 'Skills',
    data() {
        return {
          alertObject:{
              backgroundColor: 'yellow',
   			  width: '100%',
   			  height: '30px'
          }
        }
  	},
  }
}
</script>

Vue template

在vue的模板<template></template>里,可以写html,和使用vue特定的功能。

vue在模板里的功能分为两类:

  • vue interpolation(vue的插入) 文本插值用{{}} 元素属性插入用v-on v-bind这些指令、也可以在{{}}中写表达式
  • vue directives (vue的指令) 都是以v-开头的,每个指令都有自己的特定任务

下面的代码中.有用到上述的两种功能

<template>
    <div class="skills">
       文本插入: {{name}}
        <h1 v-once>{{name}}</h1>
       插入表达式:  {{ btnState ? 'The button is disabled' : 'The button is active'}}
        元素属性插入: <button v-on:click="changeName" v-bind:disabled="btnState">Change Name</button>
        
        v-for指令
        <ul>
            <li v-for="(data,index) in skills" :key='index'>{{index}}. {{data.skill}}</li>
        </ul>
        <p v-if="skills.length >= 1">you have >=1</p>
        <p v-else>you have 小于1</p>
     </div>
</template>

全部的vue指令如下

  • v-text
  • v-html
  • v-show
  • v-if
  • v-else
  • v-else-if
  • v-for
  • v-on
  • v-bind
  • v-model
  • v-pre
  • v-cloak
  • v-once

Vue 表单

v-model的双向绑定

<!-- Add these two lines: -->
<input type="text" placeholder="Enter a skill you have.." v-model="skill">

{{ skill }}

上述代码运行后:在输入框里输入,输入框后面的文本也会显示相应内容

如何导入验证的第三方插件

/src/main.js 文件中做如下更改

import Vue from 'vue'import App from './App.vue'

import VeeValidate from 'vee-validate'; // Add this
Vue.use(VeeValidate); // Add this

// Other code removed for brevity

验证的完整代码:

<form @submit.prevent="addSkill">
    <input type="text" placeholder="输入一个技能" v-model="skill" v-validate="'min:5'" name="skill">
    <p class="alert" v-if="errors.has('skill')">{{errors.first('skill')}}</p>
</form>
<script>
    export default {
        name: 'Skills',
        data: function() {
            return {
                skill: '',
                skills: [{
                        "skill": "vue.js"
                    },
                    {
                        "skill": "php"
                    }
                ]
            }
        },
        methods: {
            addSkill() {
                this.$validator.validateAll().then((result) => {
                    if(result) {
                        this.skills.push({
                            skill: this.skill
                        });
                        this.skill = "";
                    } else {
                        console.log("Not valid");
                    }
                })
            }
        }
    }
</script>

Vue动画

vue2中集成了进入离开动画、状态过渡效果

下面演示了一个进入离开动画写法,需要动画的元素被包裹,然后利用value值做css选择器的前缀,书写css,如下:

<form @submit.prevent="addSkill">
    <input type="text" placeholder="Enter a skill you have.." v-model="skill" v-validate="'min:5'" name="skill" >
    <!-- Add these 3 lines -->
    <transition name="alert-in">
    <p class="alert" v-if="errors.has('skill')">{{ errors.first('skill') }}</p>
    </transition>
</form>
<style>
.alert-in-enter-active {
  animation: bounce-in .5s;
}
.alert-in-leave-active {
  animation: bounce-in .5s reverse;
}
@keyframes bounce-in {
  0% {
    transform: scale(0);
  }
  50% {
    transform: scale(1.5);
  }
  100% {
    transform: scale(1);
  }
}
</style>

上面演示了 enter-active、leave-active两个类名,实际上vue提供了6中用于过渡中切换的类名。

  • v-enter
  • v-enter-active
  • v-enter-to
  • v-leave
  • v-leave-active
  • v-leave-to

对于这些在过渡中切换的类名来说,如果你使用一个没有名字的 ,则 v- 是这些类名的默认前缀。如果你使用了 ,那么 v-enter 会替换为 my-transition-enter。

vue如何使用动画库

拿Animate.css举例,引入了animate.css之后,直接加 enter-active-class=“animated flipInx”

<transition name="alert-in" 
            enter-active-class="animated flipInX" 
            leave-active-class="animated flipOutX">
<p class="alert" 
   v-if="errors.has('skill')">{{ errors.first('skill') }}</p>
</transition>

Vue路由

vue提供了vue-router,用于在vue组件中设置页面路径

  1. 安装vue router

    > yarn add vue-router
    
  2. 新增 /src/router.js 配置路由:

    import Vue from 'vue'
    import Router from 'vue-router'
    import Skills from './components/Skills.vue'
    import About from './components/About.vue'
    Vue.use(Router)
    export default new Router({
      routes: [
        {
          path: '/',
          name: 'skills',
          component: Skills
        },
        {
          path: '/about',
          name: 'about',
          component: About
        }
      ]
    })
    
  3. main.js中引入路由

    // other imports removed for brevity
    import router from './router'
    new Vue({
      router,               // Add this line
      render: h => h(App)
    }).$mount('#app')
    
    ## 在App.vue中运用路由
    <template>
      <div id="app">
          <nav>
            <router-link to="/">Home</router-link>
            <router-link to="/about">About</router-link>
          </nav>
        <router-view/>
      </div>
    </template>
    

最终的切换效果:

不妨在本地跑起来玩玩吧~ github地址:https://github.com/pluscai/vue-proj

八小时实现迷你版vuejs五:实现Watcher 再贴一下之前的一张图: 我们已经实现了 Observer 和 Directive,并且自己实现了一个 v-on 的指令,那么再实现 Dep 和 Watcher 就完整了。这里的 dep.js 其实就是一个记录依赖关系的,他有一个内部的数组 subs 会把所有依赖的 watcher 记录在里面,然后 observer 在观察到数据改变的时候,就告诉dep,它会负责遍历 subs 并调用他们的 upd 阅读详情

相关推荐

八小时实现迷你版vuejs四:实现compile和Directive

这一篇,我们要实现一个事件绑定的功能:<div @click=“sayHello”></div>那么为了实现这个功能,我们需要三步: 1. 实现 compileDirectives 方法, 可以从attrs中读取directive的配置,这里称之为 descriptor 2. 实现Directive类 3. 实现一个自定指令: v-on以 v-on 为例,如果碰到这样一个属性 v-on:cli

言川的博客 1418

在vue中使用momentjs

官网地址: https://momentjs.bootcss.com/

2301_76796512的博客 475

半小时实现数据可视化——基于Vue和Echarts

本文介绍的是怎样从零开始创建一个vue的项目,这个过程非常简单,如果不把安装软件所需的等待算进去的话,其实不用半个小时就可以创建出一个简单的数据可视化项目。简单来说,只需要下边这几个步骤: 创建vue项目 自定义组件 用Echart展示数据 1、创建vue项目 1.1 安装node.js 从零开始创建Vue项目,首先需要安装node.js。进入node.js的官网,下载...

老李写博客的地方 8568

moment.js在vue中的使用及时间插件moment.js的常用时间格式总结

1.前言:本文仅针对时间插件moment.js在vue中结合elm组件的基本使用及最常见的几种时间格式总结,可视为‘cv’大法的精髓之作(极大提高开发效率,算了,直接说懒吧,即贴即用);不作深入,有需深入moment.js的同学可自行前往它的官网http://momentjs.cn/学习。 2.使用篇: 2-1:实际开发中一般都是结合element或者iview等组件库的日期组件使用。所以使用moment.js前请自行安装引入这些组件库(太过简单,这里不作累述)。 2-2:第一步,需要使用mome

您的博客 7716

01_零基础1小时学编程_极速入门dnc_vue前后端分离

01_零基础1小时学编程_极速入门dnc_vue前后端分离 .

公司部门前端vue.js培训

公司部门还使用原始的JQUERY ,jsp的非前后分离模式开发,解决技术的滞后,带领新技术推广

一小时入门Vue

响应式:Vue 的核心是一个响应式的数据绑定系统。当数据发生变化时,Vue 能够自动追踪这些变化,并更新 DOM,确保用户界面与数据保持同步。让我们看两个例子理解一下响应式:(具体语法会在下文中讲解,现在只要理解使用场景即可)假设我们有一个简单的计数器应用,用户可以通过点击按钮来增加或减少计数值。

m0_66925868的博客 1068

kubeadm init 运行时kebelet启动失败问题

解决k8s kubeadm init时遇到的kubelet问题

ZDPZN的博客 6074

快速入门Vue.js

近几年,互联网前端行业发展得依旧迅猛, 涌现出了很多优秀的框架, 同事这些框架也正在逐渐改变我们的前端开发方式, Google 的 AngularJS 、Facebook 的 ReactJS, 这些前端 MVC(MVVM)框架的出现 和组件化开发的普及和规范化, 既改变了原有的开发思维和方式, 也是的前端开发者加快脚步, 更新自己的知识结构。

无笙的博客 1606

深入解析Cuk、Zeta和Sepic拓扑:非隔离型开关电源的设计奥秘

本文深入解析了Cuk、Zeta和Sepic三种非隔离型开关电源拓扑的设计奥秘。它们均能实现升降压转换,但特性各异:Cuk拓扑输出反向电压,输入输出纹波极低;Sepic拓扑输出同极性电压,应用广泛;Zeta拓扑输出纹波小,适合精密供电。文章详细对比了其电路结构、工作原理、核心公式及选型指南,帮助工程师根据输入电压范围、输出极性及纹波要求,灵活选择最合适的拓扑方案。

weixin_28308325的博客 479

【QT】基于QSerialPort的跨平台串口通信实战指南

本文是一份基于Qt QSerialPort模块的跨平台串口通信实战指南。详细介绍了从硬件基础、QSerialPort核心类使用、参数配置、设备自动发现到数据异步读写和错误处理的完整流程,并通过构建一个功能齐全的串口调试助手实例,帮助开发者快速掌握在Windows、Linux和macOS系统下进行高效、稳定的串口应用开发。

a1b2c3d的博客 982

vue难学?1小时就能上手的教程

vue是现在很火的一个前端MVVM框架,它以数据驱动和组件化的思想构建,与angular和react并称前端三大框架。 相比angular和react,vue更加轻巧、高性能、也很容易上手。大家也可以移步vue官网,看一下它的介绍和核心功能介绍。简单粗暴的理解就是:用vue开发的时候,就是操作数据,然后vue就会处理,以数据驱动去改变DOM。使用vue,我们可以集中精力于如何处理数据上,数据改变后...

weixin_34357436的博客 3038

哨兵2植被参数反演避坑指南:SNAP中10m/20m分辨率选择与缺失波段处理

本文深入解析了使用SNAP软件进行哨兵2号植被参数反演时的关键操作与决策。核心在于理解SNAP生物物理处理器NNET10m与NNET20m的架构差异,根据是否需要反演冠层叶绿素含量(Cab)等参数,明智选择10米或20米分辨率工作流。文章详细指导了大气校正、波段重采样及处理L2A数据中B01波段“缺失”等常见问题的解决方案,为生态监测与精准农业应用提供清晰的避坑指南和完整实战流程。

wdx01234567的博客 262

八小时实现迷你版vuejs: 一前言

目的最近断断续续在看Vuejs源码,版本是 V1.0,因为最开始看的时候vue还没出v2正式版 =。=作者的代码功力很深厚,整个代码看起来非常优雅,对模块的组织和依赖的处理非常值得学习。在看的过程中觉得自己实现一个迷你版的vue应该不难,最近三天抽出时间一些时间就实现了一个,但实际上全部时间加起来大概就一整天。代码地址:https://github.com/lihongxun945/tiny-vue

言川的博客 2430

Python地理数据处理 十七:植被物候提取和分析(Savitzky-Golay)

植被是陆地生态系统中最重要的组分之一,也是对气候变化最敏感的组分,其在全球变化过程中起着重要作用,能够指示自然环境中的大气、水、土壤等成分的变化,其年际和季节性变化可以作为地球气候变化的重要指标。此外,由于生态工程保护建设和植被自然生长等因素,中国陆地生态系统发挥了重要的碳汇作用。因此,定量评估植被时空动态变化是制定生态系统可持续发展目标和衡量生态系统固碳潜力的重要前提,卫星遥感数据衍生的生态参量产品为研究长时间序列全球及区域植被时空变化提供了重要数据源。SG滤波能够对物候信息进行平滑,并提取其中的物候信息

amyniez的博客,欢迎交流讨论 4248

一次点击跑通:用 Postman 自动获取并携带 CSRF token,测试 SAP OData 写操作

SAP OData 写操作自动化测试方案 针对 SAP Gateway OData 服务写操作中常见的 CSRF token 验证问题,本文提出了一套基于 Postman 的自动化解决方案: 问题分析:解释了 CSRF token 的验证机制及其必要性,说明手工测试效率低下的原因 解决方案: 使用 Postman 环境变量存储 token 通过脚本自动获取并传递 token 利用 Collection Runner 实现一键执行 实施步骤: 创建环境变量存储 token 第一个请求获取 token 并存入变

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 309

三个小时vue3.x从零到实战(前)(vue3.x基础)

一. 学前了解 1.1 前置知识 HTML: 超文本传输语言,主要用来编写网页的结构。 CSS: 层叠样式表,包括颜色,大小,字体等,实现漂亮,布局合理的效果。 JavaScript: 前端样式语言,实现页面逻辑,行为,动作等,用来动态操作元素的属性,主要是为页面提供交互效果,实现更好的用户体验。 node, npm, webpack等 1.2 学习vue3.x的相关网站 官网:https://vuejs.org/ 中文官网:https://cn.vuejs.org/ 中文官网vue3:https:/

数据知道的博客 5万+

50、压电微泵与技术设备驱动的研究分析

本文研究了压电微泵在弹性微通道中的流体流动特性及技术设备驱动的振动行为。通过建立轴对称流固耦合模型,利用FreeFem++进行数值模拟,分析了不同数量压电致动器和频率对微泵流量的影响,发现多个致动器按特定时序压缩可产生净正向流量,并提出了稳态流量的近似解析公式。同时,针对技术设备驱动系统,探讨了周期性负载引起的强迫振动特性,明确了共振条件及影响因素,并比较了主动、被动和优化设计等振动控制策略。最后展望了实验验证、多物理场耦合与智能控制等未来研究方向,为相关设备的优化设计与高效运行提供了理论支持。

convnet3designer的博客 148

Vue3 快速上手从0到1,两小时学会【附源码】

vue3快速学习

qq_43108153的博客 1551

apple游客下单逆向分析

Apple游客下单Cookies注册激活流程逆向分析与算法实现

吴秋霖的博客 2002

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

前端萌新看过来了—— 0基础1小时vue入门到实战

Vue.js+element ui从零开始一个项目项目概览1. 脚手架安装与搭建合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 项目概览 Vue版本:V 2.6. element ui版本:V 开发工具:vscode(推荐使用的前端开发工

欧阳的技术博客 1万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

vue3 一小时 学习day1

以下是学习内容(了解Vue.js的基本概念、安装Node.js和Vue CLI、创建第一个Vue3项目、了解Vue3的基本语法)的一些详细说明和步骤,帮助你更好地掌握这些基础知识。Vue.js是一个用于构建用户界面的渐进式框架。Vue.js需要Node.js环境来运行,Vue CLI(命令行工具)可以帮助快速创建和配置Vue项目。Vue3的核心是通过模板(Template)和数据绑定(Data Binding)来实现视图的更新。通过以上学习和实践,可以快速掌握Vue3的基本概念和语法,打下坚实的基础。

sinat_38992528的博客 866

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

1小时搞定Vue生命周期演示原型

不需要配置服务器或域名,学员打开链接就能看到完整交互效果。平台实时保存功能也很贴心,断网后重新登录仍能继续编辑。最近要给团队做Vue技术分享,需要准备生命周期部分的演示案例。,尤其适合需要快速验证想法的场景。我的原型从创建到发布只用了52分钟,这效率在传统开发中难以想象。整个过程最惊喜的是部署环节,点击发布按钮后,直接生成可分享的演示链接。快速实现,结果1小时就完成了专业级的交互演示。通过响应式变量控制不同阶段的演示状态。- 随时调整演示案例满足不同学员需求。模拟异步请求导致的生命周期错位。

NightshadeEagle34的博客 819

1小时原型开发:基于Vue-Quill的在线协作文档

这个原型虽然简单,但涵盖了协作文档的核心交互。引入用户认证和权限控制实现更完整的历史版本对比与回滚优化性能(如节流、增量同步)如果你也想快速尝试类似的原型开发,不妨试试InsCode(快马)平台,从想法到可演示的产品,可能比想象中更快。

EmeraldEagle36的博客 835

1小时用SHADCN-VUE打造产品原型

上尝试了这个方案,它的在线编辑器可以直接运行Vue项目,还能一键部署生成可公开访问的演示链接。传统原型设计工具往往停留在静态界面,而SHADCN-VUE提供了可直接交互的Vue组件。比如它的表单组件自带验证逻辑,表格支持分页交互,这些都比单纯的设计稿更有说服力。我的方案是通过可视化拖拽组合SHADCN-VUE的预制组件,形成完整页面。这种智能提示让原型设计更加高效。最近在验证一个产品创意时,我尝试用SHADCN-VUE组件库快速搭建原型,发现这种基于预制组件的工作流能大幅缩短从想法到可视化的周期。

GoldEagle19的博客 948

1小时原型:用Vue-Codemirror打造Markdown编辑器

最近想快速验证一个支持Markdown编辑的在线工具原型,发现用Vue-Codemirror结合快马平台,居然1小时就能完成从零到可运行的全过程。记录下这个高效的原型开发体验,尤其适合需要快速验证功能的场景。的一键部署特别省心——写完代码不用操心服务器配置,直接生成可分享的演示链接。对于需要快速验证想法的情况,这种从开发到上线的无缝衔接确实能大幅提升效率。如果你们也有快速原型开发的需求,推荐试试这个组合方案。

JetRaven12的博客 518
上一篇: Canvas2D基础
下一篇: cookies之事一二三
小菜101
博客等级 码龄10年 16粉丝 92原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值