【可视化】Vue基础

作者 | Jeskson

来源 | 达达前端小酒馆

Vue简介

Vue框架,框架的作者,尤雨溪,组件化,快速开发的特点。
生命周期
beforeCreate:组件刚刚被创建
created:组件创建完成
生成

beforeMount:挂载之前
mounted:挂载之后
成熟

beforeDestory:组件销毁前调用
destoryed:组件销毁后调用
老年

安装:

全局安装:vue-cli

npm install --global vue-cli

创建一个基于webpack模板的新项目

vue init webpack my-project

安装依赖包:

cd my-project
npm install
npm run dev

@代表src目录:

import Vue from 'vue'
import Router from 'vue-router'
import Hello from '@/components/Hello'

Vue.use(Router)

export default new Router({
 routes: [
 {
  path: '/',
  name: 'hello',
  component: Hello
 }
 ]
})

生命周期调用:

beforeCreate

created

beforeMount

mounted

实例生命周期钩子

比如 created 钩子

new Vue({
  data: {
    a: 1
  },
  created: function () {
    // `this` 指向 vm 实例
    console.log('a is: ' + this.a)
  }
})
// => "a is: 1"

生命周期钩子的 this 上下文指向调用它的 Vue 实例。

生命周期图示

选项数据:data,computed,methods

全局组件的变量的定义:

<template>
<div>
<div>{{msg}}</div>
</div>
</template>

<script>
export default{
data(){
return{
msg:'hello',
a: 1,
}
}
}
</script>
computed: {
 // 里面函数
 msg() {
  return this.a * 2;
 }
}

@click="say('hi')"

methods: {
 say(){
 }
}

模板语法

data,模板中直接嵌入js代码,指令,v-html,v-on,v-bind等,计算属性,过滤器。

<div>{{number+1}}</div>
v-on:click=""

简写

@click
{{msg.split('').reverse().join('')}}

this.msg.split('').reverse().join('');

class与style绑定

<div class="static"
v-bind:class="{ active: isActive, 'text-danger': hasError }">
class1
</div>

data(){
return{
isActive: true,
hasError: false
}
}
<div class="active text-danger">
</div>
<div v-bind:style="{color: activeColor, fontSize: fontSize+'px'}">

原始的写法:

<div style="color: red; fontSize: 12px">
dada
</div>
<div v-bind:style="{ 'color': activeColor, 'fontSize': fontSize + 'px' }">
style
</div>
<div v-bind:style="styleObject">style2</div>
<div v-bind:style=[baseStyles, overridingStyles]">
style3
</div>

条件渲染

v-if指令

v-if v-else

v-if v-else-if v-else

<h1 v-if="ok">dada</h1>

<script>
 export default{
 data(){
  ok: true
 }
 }
</script>
<div v-if="type==='A'">
A
</div>
<div v-else-if="type === 'B'">
B
</div>
<div v-else-if="type==='C'">
C
</div>
<div v-else>
D
</div>

v-show和v-if意思一致

列表渲染

v-for指令

v-for="item in items" 数组

v-for="(item, index) in items" 数组

v-for="(value,key) in object" 对象

<ul id="">
 <li v-for="(item, index) in items">
  {{index}}-{{item.message}}
 </li>
</ul>
<li v-for="item in items">
{{item.message}}
</li>
<div id="">
 <li v-for="(value, key) in obj">
  {{key}}-{{value}}
 </li>
</div>

事件处理器

v-on指令,缩写@

v-on:click 或 @click

<button v-on:click="counter+=1"></button>
<p>{{counter}}</p>

自定义组件

组件写在components文件夹下,组件基本要素,props,$emit等,通过import导入自定义的组件。

<script>
import countdown from '@/components/countdown.vue'
export default{
data(){
 return{
 }
},
components:{
}
}
</script>
<template>
<p>{{time}}</p>
</template>

<script>
export default{
data(){
return {
 time: 10
}
},
mounted(){
var vm = this;
var t = setInterval(function(){
vm.time--;
if(vm.time==0){
clearInterval(t);
vm.$emit("end");
}
},1000)
}}
</script>

Vue中的Dom操作

<div ref="head"></div>
this.$refs.head.innerHTML = ‘dada’;

过渡效果

过渡transition

样式方式写过渡

<button v-on:click="show = !show">
dada
</button>
<transition name="dada">
<p v-if="show">dada</p>
</transition>

路由vue-router
router-link

npm install 引入vue-router包

<router-link to="/demo">dada</router-link>
<router-link :to="{name: 'demo', params: {userId: 123}}>
da
</router-link>
<router-link :to="{name:'demo',params:{userId:123},
query: { plan: 'pri'}}">da< /router-link>
toUrl(){
 this.$router.push({path: 'dada' })
}

状态管理

npm install 引入 vuex包
全局的状态管理,所有页面共享数据

设置数据:
this.$store.dispatch("dada", 1222);

获取数据:
this.$store.state.num

export default new Vuex.Store({
 state: {
 count: 0,
 num: 1
 },
 mutations: {
  increment(state,num){
   state.count++
   state.num = num
  }
 },
 actions: {
  inc ({commit}, obj){
   commit('increment',obj)
  }
 }
})
this.$store.dispatch('inc', 111);

slot插槽

常用语组件调用

import slots from '@/components/slot.vue'
<template>
<div>
 <slots>
 da
 </slots>
</div>
</template>

vue-resource请求

npm install 引入 vue-resource包

this.$http.get(‘/daurl‘)

this.$http.post(‘/daurl‘, {foo:‘bar‘})

this.$http.get('/dadaurl').then(response => {
 console.log(response.body);
}, response => {
 // error
});
}
}
this.$http.post('/daurl', {foo: 'bar'}).then(response => {
 console.log(response.body);
},response => {
 // error callback
});

移动组件库mint UI

地址:
http://mint-ui.github.io/docs/#/zh-cn

?? 不要忘记留下你学习的脚印 [点赞 + 收藏 + 评论]

作者Info:

【作者】:Jeskson
【原创公众号】:达达前端小酒馆。
【福利】:公众号回复 “资料” 送自学资料大礼包(进群分享,想要啥就说哈,看我有没有)!
【转载说明】:转载请说明出处,谢谢合作!~

大前端开发,定位前端开发技术栈博客,PHP后台知识点,web全栈技术领域,数据结构与算法、网络原理等通俗易懂的呈现给小伙伴。谢谢支持,承蒙厚爱!!!



若本号内容有做得不到位的地方(比如:涉及版权或其他问题),请及时联系我们进行整改即可,会在第一时间进行处理。


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

欢迎关注达达的CSDN!

这是一个有质量,有态度的博客

原文地址:https://www.cnblogs.com/dashucoding/p/12045581.html

时间: 2024-10-29 12:21:52

【可视化】Vue基础的相关文章

遇见大数据可视化:基础研究

近日星巴克与微信推出的社交礼品功能"用星说",可以说刷遍了朋友圈.无论你爱不爱喝咖啡,星巴克似乎都成为了一种文化象征.上班族青睐,小清新喜欢,基本上大家看到绿色的人鱼标志就能马上认出它来. 虽然一直也有喝咖啡的习惯,但至今不知道星巴克菜单版上列的[摩卡].[拿铁].[美式].[卡布奇诺]等等有什么区别.直到看到下列图,才很直观的了解到每个咖啡类别的区别是什么. 类似上图示,针对内容复制,难以形象表达的信息,通过图形简单清晰地向受众呈现出来,这种图称之为信息图. 信息图 信息图本身是一个

可视化webpart基础开发——TreeView控件读取文档库中的所有文件夹和文件(递归方法读取)

可视化webpart基础开发——TreeView控件读取文档库中的所有文件夹和文件(递归方法读取) 分类: SharePoint2011-12-23 14:44 1584人阅读 评论(0) 收藏 举报 文档sharepointurl测试stringforms 可视化webpart基础开发——TreeView控件读取文档库中的所有文件夹和文件(递归方法读取) 1.在部署的sharepoint网站中新建一个名为“测试文档库”的文档库,并添加各级的子文件夹和子文件,用于测试 2.在VS2010中新建空

可视化webpart基础开发——利用事件接收器实现同步操作两个文档库(添加、删除、修改文档)

可视化webpart基础开发——利用事件接收器实现同步操作两个文档库(添加.删除.修改文档) 分类: SharePoint2012-01-18 18:02 1189人阅读 评论(0) 收藏 举报 文档propertiesstringurl测试web 1.测试文档库(Doclib1.Doclib2): 增加一栏“测试栏1”. 2.新建“可视化web部件项目”,添加“解决方案资源管理器”里边选中项目右键“添加”-“新建项”-"事件接收器“ 如图操作,选择”列表项事件“和”文档库“集相应处理事件 实现

vue基础知识之vue-resource/axios

Vue基础知识之vue-resource和axios(三) vue-resource Vue.js是数据驱动的,这使得我们并不需要直接操作DOM,如果我们不需要使用jQuery的DOM选择器,就没有必要引入jQuery.vue-resource是Vue.js的一款插件,它可以通过XMLHttpRequest或JSONP发起请求并处理响应.也就是说,$.ajax能做的事情,vue-resource插件一样也能做到,而且vue-resource的API更为简洁.另外,vue-resource还提供了

vue基础语法

vue基础语法 vue官网链接:https://cn.vuejs.org/  一.Vue简介 Vue.js 是一个用于创建 Web 交互界面的库.它让你通过简单而灵活的 API 创建由数据驱动的 UI 组件. Vue.js是一款轻量级的.以数据驱动构建web界面的前端JS框架,它在架构设计上采用了MVVM(Model-View-ViewModel)模式,其中ViewModel是Vue.js的核心,它是一个Vue的实例,而这个实例又作用域页面上的某个HTML元素. 其核心在于通过数据驱动界面的更新

从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 十七 ║Vue基础:给博客首页加花样(二)

回顾 今天来晚辣,给公司做了一个小项目,一个瀑布流+动态视频控制的DEMO,有需要的可以联系我,公司的项目就不对外展示了(一个后端程序员真的要干前端了哈哈哈). 书接上文,昨天正式的开始了Vue的代码的学习,简单的通过一些假的数据来展示了下个人博客的首页列表,不知道大家是否还记得昨天讲的什么,如果不太清楚呢,可以再回顾下<从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 十七 ║Vue基础:使用Vue.js 来画博客首页(一)>,我们主要说到了,Vue的核心语法是什么,MVVM

千锋教育Vue组件--vue基础的方法

课程地址: https://ke.qq.com/course/251029#term_id=100295989 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>vue基础的方法</title&

Vue 基础篇

Vue 基础篇 一.框架与库的区别 JQ库->DOM(DOM操作) + Ajax请求 art-template库->模板引擎 框架 -> 全方位.功能齐全 简易的DOM体验 + 发请求 + 模板引擎 + 路由功能 + ... 代码上的不同: 一般使用库:调用某个函数,自己可以把控库的代码 一般使用框架:其框架在帮我们运行已编写好的代码 框架:初始化自身的一些行为 执行你所编写的代码 施放一些资源 库:小而精 框架:大而全 ( 框架包含了各种库 ) 二.起步 引包 直接用 <scri

Vue基础学习一

Vue基础一 1.0 前端开发规范 ? 前端开发规范 1.1 vue版本更迭 vue版本 ???-?vue?1.0???2014年 ???-?vue?2.0???2016年 ???-?vue?3.0[?试用版?]?2019年国庆 1.2匿名函数 javascript (function?(形参1,形参2)?{ /?你的代码?/ ?})(实参1,实参2) ???-?好处 ?????-?1.?防止全局作用域 ?????-?2.?防止命名冲突 ?????-?3.?防止一些脚本的攻击 ?????-?4.

前端框架Vue自学之Vue基础语法(二)

终极目标:掌握和使用Vue(全家桶:Core+Vue-router+Vuex) 本博客目的:记录Vue学习的进度和心得(Vue基础语法) 内容:通过官网说明,掌握Vue基础语法. 正文: Vue基础语法 一. 原文地址:https://www.cnblogs.com/xinkuiwu/p/12031107.html