2019年最全最新Vue、Vuejs教程,从入门到精通【p64 |
您所在的位置:网站首页 › vue全套教程从入门到精通 › 2019年最全最新Vue、Vuejs教程,从入门到精通【p64 |
2019年最全最新Vue、Vuejs教程,从入门到精通 一、父子组件的访问方式 1.父组件访问子组件:使用dolor符号children或dolor符号refs -使用children的时候,获取的是一个子组件数组,可以通过循环的访问遍历每一个子组件,也可以通过下标的访问单独访问某一个子组件。但是一但子组件的顺序和数量发生变化,就不是那么好用了。refs可以直接访问到某一个子组件,此时使用refs,更方便一些。 -区别:children可以访问到所有的子组件,而,是一个数组类型。refs是一个对象类型,默认是一个空的对象,当给子组件设置了标识ref,那么它就可以访问到设置了标识的子组件。 2.子组件访问父组件$parent和dolor符root -通过parent可以访问到父组件的值,但是一般情况下开发中不这么使用。在开发中,我们会把许多小功能抽成组件,一方面可以方便复用这些功能,另一方面可以降低子组件和父组件的耦合度。如果说我们通过parent去访问父组件的值,可能会出现某些父组件有,但某些父组件没有这个值的情况,这样会增加父子组件间的耦合度,造成一定的混乱。 二、插槽 1.为什么使用slot -组件的插槽是为了让我们封装的组件更加具有拓展性 -使用者可以决定组件内部的一些内容到底展示什么 -有些组件在很多页面中都会使用到,但是每个页面中却有一部分不一样的地方,这个时候我们就要保留共性,并且将不同之处加以修改,插槽就是用来修改不同之处的。 2.插槽的基本使用 -在template标签中使用slot标签 -插槽中可以使用默认值 -如果有多个值,同时放入到组件进行替换时,一起作为替换元素 3.编译作用域 -父组件模板的所有东西都会在父级作用域内编译;子组件模板的所有东西都会在子级作用域内编译,所以变量是否显示的关键在于它本身的作用域中是否有这个变量。 4.具名插槽和作用域插槽 -可以在slot标签中设置name=“abc”,然后使用v-slot:abc对有name的slot进行匹配,再一一对应的进行组件设置。 -可以在slot标签中设置 :aaa:“需要获取的变量名” ,再使用v-slot=“用来接收数据的变量名(bbb)”,使用bbb.aaa就可以在父组件中使用子组件作用域内的变量 -v-slot要在template标签中使用 三、模块化开发 1.前端代码复杂可能带来的问题 -如果在多人开发的时候,其他人也跟我们一样,赋值了一个相同名字的变量,并且设置的是全局变量,那么就会引起一些BUG. 2.模块化核心(导出和导入) -CommonJS 四、webpack简介 1.webpack的概念 -如果工程模块依赖非常简单,甚至没有用到模块化的概念,只需要进行简单的合并、压缩,就是用grunt/gulp即可。但是如果整个项目使用了模块化管理,而且相互依赖非常强,我们就可以使用更加强大的webpack。 2.webpack与grunt/gulp的区别 -grunt/gulp更加强调的是前端流程的自动化,模块化不是它的核心 -webpack更加强调模块化开发管理,而文件压缩合并、预处理等功能,是他附带的功能 3.webpack和node和npm的关系 五.loader 1.loader -之前我们主要是用webpack来处理我们写的js代码,并且webpack会自动处理js之间相关的依赖。但是在开发中,我们不仅仅有基本的js代码处理,我们也需要加载css、图片,也包括一些高级的将ES6转成ES5代码,将TypeScript转成ES5代码,将scss、less转成css。对于webpack本身的能力来说,这些转换是不支持的。 -此时我们就需要给webpack扩展对应的loader 2.loader使用过程 -步骤一:通过npm安装需要使用的loader -步骤二:在webpack.config.js中的modules关键字下进行配置 3.加载css、less等loader webpack中文网站 4.配置图片
六、使用webpack配置Vue 1.vue的npm安装和引入 -语法 : npm install vue -save (这里是因为vue既要在开发时依赖,又要在运行时依赖) -使用import Vue from ‘vue’ 这里是因为node_modules中导出了一个default的vue。 2.vue在构建最终发布版本时,构建了两类版本 -runtime-only-> 代码中,不可以有任何的template -runtime-compiler->代码中,可以有template,因为有compiler可以用于编译template -解决办法: 4.省略后缀的方法(extensions) -resolve:{ // alias:别名 extensions:[’.js’,’.css’,’.vue’], alias:{ ‘vue$’:‘vue/dist/vue.esm.js’, } } 七、plugin 1.plugin是什么? -plugin是插件的意思,通常是用于对某个现有的架构进行扩展。 -webpack中的插件,就是对webpack现有功能的各种扩展,比如打包优化,文件压缩等等。 2.loader和plugin的区别 -loader通常是用于转换某些类型的模块,它是一个转换器 -plugin是插件,它是对webpack本身的扩展,是一个扩展器 3.plugin的使用过程: -步骤一:通过npm安装需要使用的plugins -步骤二:在webpack.config.js中的plugins中配置插件 4.添加版权的plugin(webpack自带的BannerPlugin插件) -在webpack.config.js中先导入一下webpack const webpack =require(‘webpack’);
7.搭建本地服务器 -可以使用npm install --save-dev [email protected]版本(这里是因为webpakc使用的是3.6.0版本,需要与webpack版本保持一致即可) -devserver也是作为webpack中的一个选项,选项本身可以设置一些属性:contentBase:为哪一个文件夹提供本地服务,默认是根文件夹, port:端口号 ,inline:页面实时刷新 , historyApiFallback:在SPA页面中,依赖HTML5的history模式 -可以使用node_modules.bin\webpack-dev-server(注意终端要用反斜杠进入绝对路径)或在package.json文件里面配置一下"dev":“webpack-dev-server” ,这两种方式可以进入搭建的本地服务器 8.对webpack可以进行配置分离 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |