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"  //或者这样在这里修改
})



目录
相关文章
|
5天前
|
JavaScript 前端开发
如何在 Vue 项目中配置 Tree Shaking?
通过以上针对 Webpack 或 Rollup 的配置方法,就可以在 Vue 项目中有效地启用 Tree Shaking,从而优化项目的打包体积,提高项目的性能和加载速度。在实际配置过程中,需要根据项目的具体情况和需求,对配置进行适当的调整和优化。
|
6天前
|
存储 缓存 JavaScript
在 Vue 中使用 computed 和 watch 时,性能问题探讨
本文探讨了在 Vue.js 中使用 computed 计算属性和 watch 监听器时可能遇到的性能问题,并提供了优化建议,帮助开发者提高应用性能。
|
6天前
|
存储 缓存 JavaScript
如何在大型 Vue 应用中有效地管理计算属性和侦听器
在大型 Vue 应用中,合理管理计算属性和侦听器是优化性能和维护性的关键。本文介绍了如何通过模块化、状态管理和避免冗余计算等方法,有效提升应用的响应性和可维护性。
|
6天前
|
存储 缓存 JavaScript
Vue 中 computed 和 watch 的差异
Vue 中的 `computed` 和 `watch` 都用于处理数据变化,但使用场景不同。`computed` 用于计算属性,依赖于其他数据自动更新;`watch` 用于监听数据变化,执行异步或复杂操作。
|
5天前
|
JavaScript 前端开发 UED
vue学习第二章
欢迎来到我的博客!我是一名自学了2年半前端的大一学生,熟悉JavaScript与Vue,目前正在向全栈方向发展。如果你从我的博客中有所收获,欢迎关注我,我将持续更新更多优质文章。你的支持是我最大的动力!🎉🎉🎉
|
7天前
|
存储 JavaScript 开发者
Vue 组件间通信的最佳实践
本文总结了 Vue.js 中组件间通信的多种方法,包括 props、事件、Vuex 状态管理等,帮助开发者选择最适合项目需求的通信方式,提高开发效率和代码可维护性。
|
5天前
|
JavaScript 前端开发 开发者
vue学习第一章
欢迎来到我的博客!我是瑞雨溪,一名热爱JavaScript和Vue的大一学生。自学前端2年半,熟悉JavaScript与Vue,正向全栈方向发展。博客内容涵盖Vue基础、列表展示及计数器案例等,希望能对你有所帮助。关注我,持续更新中!🎉🎉🎉
|
19天前
|
数据采集 监控 JavaScript
在 Vue 项目中使用预渲染技术
【10月更文挑战第23天】在 Vue 项目中使用预渲染技术是提升 SEO 效果的有效途径之一。通过选择合适的预渲染工具,正确配置和运行预渲染操作,结合其他 SEO 策略,可以实现更好的搜索引擎优化效果。同时,需要不断地监控和优化预渲染效果,以适应不断变化的搜索引擎环境和用户需求。
|
7天前
|
存储 JavaScript
Vue 组件间如何通信
Vue组件间通信是指在Vue应用中,不同组件之间传递数据和事件的方法。常用的方式有:props、自定义事件、$emit、$attrs、$refs、provide/inject、Vuex等。掌握这些方法可以实现父子组件、兄弟组件及跨级组件间的高效通信。
|
12天前
|
JavaScript
Vue基础知识总结 4:vue组件化开发
Vue基础知识总结 4:vue组件化开发