vue-cli4脚手架搭建一

vue create vue3

cd vue3

yarn serve

http://localhost:8080/#/

main.js文件

import Vue from 'vue'
import App from './App.vue'
import router from './router' Vue.config.productionTip = false new Vue({
router,
render: h => h(App)
}).$mount('#app')
render: h => h(App) 这一行是ES6箭头函数的写法,等价于下面的写法
render:function(h){
return h(App);
}

将App作为参数传入h函数

App.vue是组件的入口

<template>
<div id="app">
<div id="nav">
<router-link to="/">Home</router-link> |
<router-link to="/about">About</router-link>
</div>
<router-view/>
</div>
</template>

<router-view/>是组件内容显示的区域,一个组件只能有一个<router-view/>标签
router-link 是组件路由,按路径的不同,显示不同的组件
路由切换:上个组件销毁和新组件加载
由main.js文件中 import router from './router' 引入路由
main.js是项目的入口,也在main.js中完成Vue的初始化

new Vue({
router,
render: h => h(App)
}).$mount('#app')

运行项目看到的区域是App.vue的<router-view/>标签,App.vue是组件的入口,也可以说是视图的入口;点击不同的路径,会更换<router-view/>标签的内容

router/index.js

vue的中视图就是组件,路由由三部分组成:

url

名称:可以有,也可以没有

组件

这里的Home,是引入的Home.vue组件  import Home from '../views/Home.vue'

/about的组件是懒加载

  const routes = [
{
path: '/',
name: 'Home',
component: Home
},
{
path: '/about',
name: 'About',
// route level code-splitting
// this generates a separate chunk (about.[hash].js) for this route
// which is lazy-loaded when the route is visited.
component: () => import(/* webpackChunkName: "about" */ '../views/About.vue')
}
] const router = new VueRouter({
routes
}) export default router

先看About.vue组件,这是一个非常简单的组件

<template>
<div class="about">
<h1>This is an about page</h1>
</div>
</template>

几个html dom元素,然后最外层是template标签;一个template标签内放一个div标签,就可形成一个组件。也是常见的html模板语法。

复杂一些的组件,会有更多的dom元素,为了更好地渲染这些dom元素,还会加入css样式/JS脚本,比如Home.vue组件

将一个组件命名并供外部使用

<template> <div> ... </div> </template>

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

在另外一个组件中使用时,需要import

<scripts>
// @ is an alias to /src
import HelloWorld from '@/components/HelloWorld.vue'
</scripts>

CSS样式全局导入

<template>
<div id="app"> <!-- 路由展示-->
<div></div>打 <!-- 底部导行-->
<div></div>
</div>
</template> <style>
/*全局导入CSS样式*/
@import "./assets/css/index.css"; </style>

CSS样式私有导入,仅当前组件生效

<style scoped>
@import "./assets/css/index.css"; </style>

 路由样式

router/index.js

const router = new VueRouter({
linkActiveClass:'active',
routes
})

然后定义一个全局的样式

<style>
.active {
color:rebeccapurple;
}
</style>

 动态样式

<template>
<div class="home">
<img alt="Vue logo" src="../assets/logo.png">
<div class="index-category">
<!--key指定唯一键,实时渲染-->
<div class="category" v-for="(list,i) in lists":key="i">
<i class="iconfont" :style="{background:list.color}"></i>
<label>{{list.title}}</label>
</div> </div>
</div>
</template> <script> export default {
name: 'Home',
data(){
return {
lists:[
{title:'标题1',color:'#ffbb78'},
{title:'标题2',color:'#b5cf6b'},
{title:'标题3',color:'#4169e1'}
]
}
}
}
</script>

vue中的花括号

<label>{{list.title}}</label>  标签中写上双花括号,里面是js表达式

v-for="(list,i) in lists":key="i"  对于 vue指令,不需要写花括号,直接就可以写js表达式
:style="{background:list.color}"  这里写上一个花括号,是因为里面是一个键值对 对象,js中定义键值的对的方式,比如 let data = {name:"zhangsan"},js对象本身带一个花括号

图片轮播

<template>
<div class="home">
<img alt="Vue logo" src="../assets/logo.png">
<div class="index-category"> <div class="banner">
<img alt="gu zi" v-for="(v,i) in imgArr":key="i" :src="v" v-show="imageShowSeq==i">
<div class="banner-circle">
<ul>
<li v-for="(v,i) in imgArr":key="i" :class="imageShowSeq==i?'selected':''" ></li>
</ul>
</div>
</div>
</div>
</div>
</template> <script> export default {
name: 'LunBo',
data(){
return {
imageShowSeq:1,
imageTimer:null,
imgArr:[
require('../assets/img/gu.png') ,
require('../assets/img/jian.png') ,
require('../assets/img/monitor.png')
]
}
},
methods:{
play(){
this.imageTimer = setInterval(this.autoPlay,2000);
},
autoPlay(){
this.imageShowSeq++
if (this.imageShowSeq == this.imgArr.length){
this.imageShowSeq = 0;
}
}
},
mounted:function () { //页面加载后,自动执行函数
this.play();
},
destroyed:function () {
clearInterval(this.imageTimer);
}
}
</script>


vue-cli4脚手架搭建二的更多相关文章

  1. 从0开始搭建vue+webpack脚手架(二)

    接着从0开始搭建vue+webpack脚手架(一) 三.配置webpack-dev-server 1. webpack-dev-server自带一个node的服务器, 项目在服务端运行的同时可以实现热 ...

  2. 使用Vue CLI脚手架搭建vue项目

    本次是使用@vue/cli 3.11.0版本搭建的vue项目 1. 首先确保自己的电脑上的Node.js的版本是8.9版本或者以上 2. 全局安装vue/cli npm install @vue/cl ...

  3. 用 vue cli 脚手架搭建单页面 Vue 应用(进阶2)

    1.配置 Node 环境. 自行百度吧. 安装好了之后,打开 cmd .运行 node -v .显示版本号,就是安装成功了. 注:不要安装8.0.0以上的版本,和 vue-cli 不兼容. 我使用的 ...

  4. vue+webpack4 脚手架搭建

    1, vue 中 h => h(App) 的含义: //render: h => h(App) 是下面内容的缩写: render: function (createElement) { r ...

  5. 从0开始搭建vue+webpack脚手架(三)

    在从0开始搭建vue+webpack脚手架(二)中已经基本完成了开发环境的配置.当开发完成后,我们需要将完成的项目进行打包,接下来对打包做一些优化: 运行 $ npm run build 可生成dis ...

  6. 13. Vue CLI脚手架

    一. Vue CLI 介绍 1. 什么是Vue CLI? Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统.Vue CLI 致力于将 Vue 生态中的工具基础标准化.它确保了各种构建工 ...

  7. 用vue-cli脚手架搭建一个仿网易云音乐的全家桶vue项目

    一,vue-cli环境搭建 1,全局安装webpack npm install webpack -g 2,安装vue脚手架 npm install vue-cli -g 3,新建一个新的project ...

  8. Vue.js+vue-element搭建属于自己的后台管理模板:Vue.js快速入门(二)

    Vue.js+vue-element搭建属于自己的后台管理模板:Vue.js快速入门(二) 前言 上篇文章对Vue.js有了初步理解,接下来我们把Vue.js基础语法快速的过一遍,先混个脸熟留个印象就 ...

  9. vue环境配置脚手架搭建,生命周期,钩子

    Vue项目环境搭建 """ node ~~ python:node是用c++编写用来运行js代码的 npm(cnpm) ~~ pip:npm是一个终端应用商城,可以换国内 ...

随机推荐

  1. vue-router 4 你真的熟练吗?

    虽然 vue-router 4 大多数 API 保持不变,但是在 vue3 中以插件形式存在,所以在使用时有一定的变化.接下来就学习学习它是如何使用的. 一.安装并创建实例 安装最新版本的 vue-r ...

  2. k8s入坑之路(13)kubernetes重要资源(namespace隔离 resources资源管理 label)

    Namespace --- 集群的共享与隔离 语言中namespace概念 namespace核心作用隔离 以上是隔离的代码.namespace隔离的是: 1.资源对象的隔离:Service.Depl ...

  3. Linux内核内存检测工具KASAN

    KASAN 是 Kernel Address Sanitizer 的缩写,它是一个动态检测内存错误的工具,主要功能是检查内存越界访问和使用已释放的内存等问题.KASAN 集成在 Linux 内核中,随 ...

  4. Android-ION内存管理简介

    ION内存管理简介 https://www.jianshu.com/p/4f681f6ddc3b http://kernel.meizu.com/memory%20management%20-%20i ...

  5. 公司项目被扫出来一个Druid未授权访问漏洞

    这不是阿里druid的监控页面吗?接下来查看项目配置 1.在web.xml中有如下配置: <filter> <filter-name>DruidWebStatFilter< ...

  6. 大一C语言学习笔记(8)---指针篇--动态内存是什么?与静态内存有什么区别?怎么使用动态内存,有什么需要注意的地方?

    静态内存指的是在编译时系统自动给其分配的内存,运行结束后会自动释放:静态内存是在栈中分配的: 动态内存是我们程序员手动分配的内存,正常情况下,程序运行结束后,也不会自动释放,所以为了避免发生未知的错误 ...

  7. 日志收集之rsyslog to kafka

    项目需要将日志收集起来做存储分析,数据的流向为rsyslog(收集) -> kafka(消息队列) -> logstash(清理) -> es.hdfs: 今天我们先将如何利用rsy ...

  8. [loj6118]鬼牌

    枚举最终所有牌的大小$i$,对于最终所有牌大小都为$i$的情况,令其贡献为步数,否则令其贡献为0,记$F$为期望贡献(即所有情况概率*贡献之和),答案即为$\sum_{i=1}^{m}F$ 显然,$F ...

  9. 国内首家!腾讯云正式成为 FinOps 基金会顶级会员

    11月24日,腾讯云正式宣布加入FinOps基金会,作为国内首家FinOps基金会顶级会员,腾讯云将联合FinOps基金会,全面推进对FinOps标准和最佳实践的贡献,为企业提供云财务管理的最佳解决方 ...

  10. tomcat的log日志乱码解决方案

    Intellij idea Tomcat输出log中文乱码 配置tomcat在VM options添加-Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8 重启后控 ...