VUE全家桶 (Vue-cli、Vue-route、Vuex)学习笔记(二)

简介: VUE全家桶 (Vue-cli、Vue-route、Vuex)学习笔记

作用域插槽

在子模板中建立slot标签313b7b6ec9b8426c9dcaea110cc22923.png

在父亲的中调用子模板的标签中写入template标签 并加上属性 slot-scope="slot"

调用的话直接在{{slot.data}} 这样调用

15d387bc21074dc887617f2e216c5727.png




模块化

Js原生模块打包

导出 //export

2709df6770574964a176fa687da2d919.png

f837b39084e143b2817fa160c3f515e4.png

在导出前定义好 然后直接通过json形式全部导出

如果这样导出  那么用户将自定义 接收



export default {}   //导出
import app from "./vue/app"; //接收


导入        //import

abe65c1c7e984d94b2cbe4e1697c1e1b.png

37a423bdfba04a399ffc904ec42766eb.png



Webpack  //!!!如果报错几乎都是版本 问题

安装 Vue2对应webpack3 //版本问题

a124eec6ccfe499982322ca23bbef1f3.png



npm install webpack@3.6.0 --save-dev


使用

通过js

Js模块互相引包 如果直接用那个js文件的话 那么htm页面将不认识这个引包

必须通过webpack函数使用


创建两个文件夹 src dist 分别为源js文件夹 webpack生成的文件夹


命令:webpack ./src/asd.js ./dist/bundle11.js


如果不想敲那么多命令行

可以在终端的当前目录下建立 webpack.config.js文件

配置文件中的代码

const path=require('path');
module.exports={
    entry:"./src/asd.js",
    output:{
        path:path.resolve(__dirname,"dist"),
        filename:"wangzhaoyang.js"
    }
}


运行代码 直接命令行敲 webpack

packjson.json启动 可以用本地的webapck防止与总版本兼容

npm init //初始化一个 package.json的文件

然后咱下图中的数据修改

好处就是如果webpack版本不兼容的话可以定义内部的webpack来使用

npm run build  //执行命令行

987223e018e94da881d406b00b79049c.png



webpack loader模块  //一定注意版本问题

安装npm依赖

npm install style-loader@0.23.1 --save-dev


安装loader中合适的loader

npm install --save-dev css-loader@0.28.0 //安装css模块依赖

npm install less@3.9.0 --save-dev    //安装less模块依赖

npm install less-loader@5.0.0 --save-dev //安装less-loader依赖  两个都得装下


npm install --save-dev url-loader@1.1.2 //安装url依赖

针对背景图关于css样式里面的url属性


npm install --save-dev babel-loader@7 babel-core babel-preset-es2015     //安装将es6转化为es5的依赖

配置一下得

{
        test: /\.js$/,
        //exclude 排除因为不想将下面的文件转换为es5
        //include 包括
        exclude: /(node_modules|bower_components)/,
        use: {
          loader: 'babel-loader',
          options: {
            presets: ['es2015']  //这里做一个修改
          }
        }
      }

npm install vue@2.5.21 --save //安装Vue依赖

因为装的版本是简略版run所以直接运行的话会报错得修改下面是两种修改方式

方法一:在webpack.config.js文件里面加上这一条属性 原理就是improt Vue from “vue”的时候 他不去找默认的vue文件 而去找咱们那个完整版的文件

resolve: {
      alias: {
        'vue$': 'vue/dist/vue.esm.js' // 用 webpack 1 时需用 'vue/dist/vue.common.js'
      }
    },


方法二:在引用Vue的时候直接

import Vue from 'vue/dist/vue.js'引用


不再是 import Vue from 'vue'这样引用


⑥npm install vue-loader@13.0.0 vue-template-compiler@2.5.21 --save-dev //安装关于.vue文件的脚手架


!!!!!!!!!!vue-loader的版本要是不对的话会产生提示这样的插件plugin错误


vue-loader was used without the corresponding plugin. Make sure to include VueLoaderPlugin in your webpack config.


vue-template-compiler 版本号 必须!!和vue的版本统一


安装完以后配置webpack.config.js文件

{
        test: /\.vue$/,
        use: [
          {
            loader: 'vue-loader',
          }
        ]
      },


使用vscode用户可以下载Vetur插件来快速创建vue模板

<template>
   //在这里放置模板
</template>
<script>
//引用js语句的话一定要在script中使用
export default {
name:””
//这里放置除了template 的其余属性data啦啥的
}
</script>
<style>   //这里放置需要设置的css样式代码
</style>

js文件引用vue文件

import app from "./vue/app1.vue";


vue文件也可以对vue文件进行引用

如果想引用的时候省略.vue

import app from "./vue/app1";


需要配置webpack.config.js文件里的extensions属性


resolve: {
      extensions:['.js','.css','.vue'],//可以让你省去写.js .css .vue 文件名
      alias: {
        'vue$': 'vue/dist/vue.esm.js' // 用 webpack 1 时需用 'vue/dist/vue.common.js'  别名 可以让你正确的寻找文件
      }
    },


配置package.json中的文件 //安装的时候npm 加上--save-dev 这个语句的话人家就默认配置

"devDependencies": {
    "all": "^0.0.0",
    "css-loader": "^0.28.0",
    "style-loader": "^0.23.1",
    "webpack": "^3.6.0"
  }


配置webpack.config.js文件

下面中的有个坑 use属性 里面的东西执行顺序是从右向左执行

45534b1a6f6b4e178c52d9f27f033690.png



module: {
      rules: [
        {
          test: /\.css$/,
          use: [ 'style-loader', 'css-loader' ]
        }
      ]
    }


在要打包的js文件里面调用css

require("./css/aaa.css");


开始启动

添加版权的Plugin

⑦npm install --save-dev html-webpack-plugin@3.2.0//安装将html转化到dist目录下


需要配置webpack.config.js文件

const HtmlWebpackPlugin=require("html-webpack-plugin");
//然后给module.exports 里面配置属性
plugins:[
      new webpack.BannerPlugin("最终版权归王朝阳所有"),
      new HtmlWebpackPlugin({})
    ],


打包的文件的html文件默认是引用了这个打包后js文件的那个html


也可以自己配置 里面的属性 template那个属性就是要打包的文件


new HtmlWebpackPlugin({
        template:"a.html"
      })

534865a41a3544dfa328ae566f69b7e9.png



js压缩的Plugin

npm install uglifyjs-webpack-plugin@1.1.1 --save-dev


将自动把要压缩的js文件压缩

1ca717ea7bf345959c724b08c49d3477.png




搭建本地服务器   //vscode 中有一个live sever插件挺好使

npm install --save-dev webpack-dev-server@2.9.1

222918f9bdf848908cd0320a5fa6d164.png




webpack.config.js文件里面配置


运行服务器方法一

直接在命令行中敲出


node_modules\.bin\webpack-dev-server


再package.json文件夹中 script属性下 设置

"scripts": {
    "dev":"webpack-dev-server --open"
  },

其中 --open 的意思是运行服务器的时候直接打开


配置文件的分离

npm install webpack-merge@4.1.5 --save-dev


建立一个build文件夹 里面放置三个文件

56d1d29fe9294da283ddd34c00cf8622.png

 base.config.js   //公共配置文件


dev.config.js    //测试文件


     prod.config.js   //生产文件


测试文件里面的代码格式为


const uglifyJsPlugin=require("uglifyjs-webpack-plugin");
const webpackMerge=require("webpack-merge");
const baseConfig=require('./base.config')
module.exports=webpackMerge(baseConfig,{plugins:[
    new uglifyJsPlugin(),
  ]})

 


使用:在原先的package.json 文件里面自己设置的build dev属性修改


"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "build": "webpack --config ./build/prod.config.js",
    "dev": "webpack-dev-server --open --config ./build/dev.config.js"
  },


在公共的webpack.config.js文件中(自己定义了一个base.config.js 就是这个东西)修改他的出口

path

设置 要不就会在自己刚创建的build文件夹中打包自己写的代码


output:{
        path:path.resolve(__dirname,"../dist"), //在这里修改
        filename:"wangzhaoyang.js"
    },


Vue CLI

1.安装 npm install -g @vue/cli  

2.查看版本 vue -V

3.初始化vue init webpack 项目名称   //Vue CLI2

vue create 项目名称      //Vue CLI3


如果装脚手架失败 试试下面这两个

51ceb684713743eaae279a7f1807c03b.png




vue ui


vue-router

使用直接初始化vue init webpack 项目名称里面选中vue-router   //Vue CLI2

在项目router目录有一个index.js文件

//配置路由
import Vue from 'vue'
import Router from 'vue-router'
// 将要显示的vue文件引入到这里
import about from "../components/about.vue"
import home from "../components/home.vue"
//让Vue使用Router插件
Vue.use(Router)
//配置路由和组件的关系
export default new Router({
  routes: [
    {
      path: '/about',
      component: about
    },
    {
      path: '/home',
      component: home
    }
  ]
})
————————————————
版权声明:本文为CSDN博主「_揽」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_59747594/article/details/127935617

使用路由  //将下面的东西放到要渲染的页面上面

<router-link to="/about">about</router-link>
    <router-view></router-view>

4b30eec184ad4c858fe2f3372f7b35d0.png



配置的一些小细节

修改路由映射

routes: [
    {
      path: '/',
      redirect:"/ahome" //可以将将上面的路由映射到这里
    },]


默认hash值 修改为htmlhistory路由

添加一条属性mode:”history”


export default new Router({
  routes: [
  ],
  mode:"history"  //添加这一条
})


修改渲染的目标dom 默认a标签

加一条tag=”要渲染成的dom标签”


<router-link to="/home" tag="button">home</router-link>


不留下历史记录 直接添加一个replace属性

那么访问这个就不会留下浏览记录


<router-link to="/home" tag="button" replace>home</router-link>


如果匹配到路由以后会自动添加一个class

2b93d4dc059244b19b3ede1680089906.png



修改class名方法1:


<router-link to="/home" active-class="abc">home</router-link>


修改class名方法2:


export default new Router({
  routes: [
  ],
  mode:"history",
  linkActiveClass:"aac"  //或者这样在这里修改
})



目录
相关文章
|
1天前
|
JavaScript 前端开发
【vue】iview如何把input输入框和点击输入框之后的边框去掉
【vue】iview如何把input输入框和点击输入框之后的边框去掉
7 0
|
1天前
|
JavaScript
【vue实战】父子组件互相传值
【vue实战】父子组件互相传值
6 1
|
1天前
|
JavaScript
vue2_引入Ant design vue
vue2_引入Ant design vue
6 0
|
1天前
|
JavaScript
vue知识点
vue知识点
10 4
|
2天前
|
存储 JavaScript 前端开发
【Vue】绝了!这生命周期流程真...
【Vue】绝了!这生命周期流程真...
|
2天前
|
JavaScript 索引
【vue】框架搭建
【vue】框架搭建
7 1
|
2天前
|
JavaScript 前端开发 容器
< 每日小技巧: 基于Vue状态的过渡动画 - Transition 和 TransitionGroup>
Vue 的 `Transition` 和 `TransitionGroup` 是用于状态变化过渡和动画的组件。`Transition` 适用于单一元素或组件的进入和离开动画,而 `TransitionGroup` 用于 v-for 列表元素的增删改动画,支持 CSS 过渡和 JS 钩子。
< 每日小技巧: 基于Vue状态的过渡动画 - Transition 和 TransitionGroup>
|
2天前
|
JavaScript
【vue】setInterval的嵌套实例
【vue】setInterval的嵌套实例
8 1