Vue.js入门(六)

目录

第一章 webpack中url-loader的使用

1.1 用url-loader读取图片

1.2 用url-loader处理字体文件

第二章 webpack和npm中几个问题的说明

第三章 webpack中babel的配置

3.1 关于babel的基本配置

3.1.1 安装对应的包 

 3.1.2 书写对应的配置规则

3.1.3 新建.babelrc文件来 并进行配置

3.2 关于Babel的几点说明

第四章 使用Vue实例的render方法渲染组件

第五章 webpack结合Vue进行使用

5.1 区分webpack中导入Vue和普通网页使用script导入Vue

5.1.1 在以前的网页中如何使用Vue

5.1.2 用webpack导入Vue

5.2 在vue中结合render函数渲染指定的组件到容器中

5.3 总结梳理webpack中如何使用vue

5.4 export default 和export的使用方式

第六章 webpack与路由结合使用

6.1 webpack使用vue-router

6.2 webpack实现children子路由

6.3 webpack抽离路由模块

第七章 组件中使用style标签lang属性和scoped属性


第一章 webpack中url-loader的使用

1.1 用url-loader读取图片

我们想给红色的div加个背景图片,所以在index.scss中书写背景图片样式

1.首先安装插件

2.在webpack.config.js中书写匹配规则

3.可以在user后面的url地址中填入参数

我们发现图片的名字改变了,主要是为了避免重名,可能重名的情况如下图,都会在根目录下建立一个生小孩的图片,最终后者会覆盖前者.

 为了解决这种情况,我们可以在图片名字的前面加一个8位的哈希值.即可解决问题.

 1.2 用url-loader处理字体文件

1. 安装bootstrap

2. 修改根目录

一开始的根路径设置为,找不到此目录,这是因为src与node_modules是平级的

删除dev下的contentBase  src,交由根目录进行托管

再次加载,成功

 这是以前的导入方式,现在我们用新的方式来导入

因为bootstrap下有听多种后缀名,我们需要在webpack.config.js下进行新的配置

第二章 webpack和npm中几个问题的说明

注意下json里面不能写注释,webpack.config.js中可以写注释是因为它是一个js文件,要以文件最后的结尾来看文件的类型.

如果我们遇到如下类似的问题

可能是依赖没装上,不能看package.json中有,如下图,就说已经装上了,这只是记录你以前装过,不代表现在有

 我们可以执行cnpm install来重新进行安装     

有时我们会装一些包,但是因为太慢所以我们用ctrl+c停止了其运行,又重新安装成功,等我们运行npm run dev时,又各种报错说缺少什么包,原因是我们刚才有些包装到一半被强行终止了,遇到这种情况我们就把node_modules删了,再重新安装一遍就好了.

第三章 webpack中babel的配置

为什么需要babel:

3.1 关于babel的基本配置

例如我们再main.js中写了如下代码,想要处理就需要更高级的语法.

3.1.1 安装对应的包 

 3.1.2 书写对应的配置规则

在webpack.config.js中配置匹配规则

3.1.3 新建.babelrc文件来 并进行配置

 运行成功

3.2 关于Babel的几点说明

刚才导入了两套包

第一套包相当于babel的转换工具,只负责转换,它不知道它们的对应关系

第二套包相当于语法.

如果只安装一个将不能正常工作,因为我们要把class语法转换成ES3的语法,即function构造函数来模拟,你不知道class person与static info对应ES3的哪种语法,第一套包只负责转换,但是它不知道高级语法到低级语法的对应关系,如果真的想进行转换,我们还需要真正的语法插件,这个语法插件就像一本字典,比如info对应的中文意思是信息,中文可以想象成低级的es3语法,英文可以想象成高级的es6语法,babel-preset这个就提供了对应关系,但是只有转换器也是没办法工作的,所以我们还需要对应的转换器.当转换器转换到某一行时,交给babel-preset去翻译,然后交给bundle去打包去合并(这个是老师的原话,我也没搞清楚具体啥意思...,猜测是第一套包对整体进行把握,第二套包是对细节进行翻译)

第四章 使用Vue实例的render方法渲染组件

模板:

传统方式Vue实例: 

新的方式Vue实例:

可以简化var html=那一行为

传统方式:

替换掉<login>标签

 新的方式:

这里return的结果不是之前那种只替换个标签了,而是直接替换掉那个容器.

当你即使在容器中有内容,也会被替换掉,如下图div容器中是有个p标签的,也不会进行显示,显示的依然是模板中的内容.

传统方式效果:

新的方式效果:

第五章 webpack结合Vue进行使用

5.1 区分webpack中导入Vue和普通网页使用script导入Vue

5.1.1 在以前的网页中如何使用Vue

5.1.2 用webpack导入Vue

main.js中写入

index.html中写入:

尝试运行发现报错:

这是因为我们导入的Vue其实不是真正的vue,是删减版的,我们可以修复这种情况,为了修复,我们先 回顾包的查找规则:

为了验证上述结论我们打开

发现了main,发现main导入的是runtime的js,而真正的Vue.js是要比下面的要大的

修改方法:

第一种:

第二种:

在webpack.config.js下进行规则匹配

5.2 在vue中结合render函数渲染指定的组件到容器中

main.js中的书写:

index.html的书写

一起运行良好,但是如果我们将main.js中的import修改成如下图,还是会报错,报错在runtime-only环境下不能编译,那么我们该如何修改才能在runtime-only环境下编译呢?

我们需要单独的在src下定义vue文件,这是一个纯粹的组件

 然后下载和配置loader

在配置文件(webpack.config.js)中新增配置项

在main.js中导入login.vue并更改main.js中的vue实例,vue实例中的login就是刚才导入的login

可以进行简写:

可以将function改成箭头函数

只有一个参数小括号也能省略,并将参数名字改成c

返回值只有一行代码,return也可以不要了

index.html的书写

最后运行html即可成功了.

5.3 总结梳理webpack中如何使用vue

5.4 export default 和export的使用方式

在组件中定义数据和方法.login.vue的书写

那么这个export default是什么呢?

举例:

项目结构:

我们在test.js中定义了模块

也可以这样定义模块

我们在main.js中读取模块的内容

用export default暴露的成员可以用任意变量来接收,比如用如下来接收也可以,且export default向外暴露的成员只能暴露一次.

 也可以用export来暴露,但是必须要用一样的名字接收,或者是在接收时用as改变

第六章 webpack与路由结合使用

6.1 webpack使用vue-router

目录结构:

模板App的创建:

      

路由的安装

 main.js的书写

流程:当地址修改时会被路由监听到,路由监听到后就会从上到下匹配route规则,假如匹配到account则会将account组件渲染到对应的<router-view>中去(在app中触发超链接必然会放到app的<router-view>中去)

老师解释:

6.2 webpack实现children子路由

可以装一下插件,能进行一些提示

   

包结构:

模板的书写:

       

更改路由:

导入组件:

6.3 webpack抽离路由模块

新建router.js

导入组件到router.js中

 导入路由对象router.js中

最后暴露路由对象

 在main.js中导入

第七章 组件中使用style标签lang属性和scoped属性

scoped 指定样式只在本组件与子组件中有效

在account.vue中加入如下样式

它的组件和子组件字体都发生了改变

lang指定可以使用的样式

猜你喜欢

转载自blog.csdn.net/q610376681/article/details/84196352