webpack+vue.js实现组件化详解

前端之家收集整理的这篇文章主要介绍了webpack+vue.js实现组件化详解前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

简介

在vue中实现组件化用到了vue特有的文件格式.vue,在每一个.vue文件就是一个组件,在组件中我们将html,css,js全部写入,然后在webpack中配置vue-loader就可以了。

建立vue组件

在src目录下建立components文件夹,并在其中建立app.vue文件,这样我们项目的目录结构如下:

生成的文件夹 | |--build.js |--node_modules //项目的依赖所在的文件夹 |--src //文件入口 | |--components //组件存放文件夹 | |--app.vue //组件 | |--main.js //主js文件 |--index.html //主html文件 |--package.json |--webpack.config.js //webpack配置文件

首先在index.hmtl中写入代码

<Meta charset="UTF-8"> Vue example@H_<a href="/tag/404/" target="_blank" class="keywords">404</a>_19@ </head> <body> <app></app> <script src="dist/build.js"></script> </body> </html></pre> </div> <p>在编辑器中打开app.vue<a href="/tag/wenjian/" target="_blank" class="keywords">文件</a>,写入如下<a href="/tag/daima/" target="_blank" class="keywords">代码</a>:</p> <div class="jb51code"> <pre class="brush:xhtml;"> <template> <div class="message">{{msg}}</div> </template> <script> export default { data () { return { msg: 'Hello from vue-loader' } } } </script> <style> .message{ color:red; font-size:36px; font-weight:blod; } </style></pre> </div> <p>在main.js中写入:</p> <div class="jb51code"> <pre class="brush:js;"> import Vue from 'vue' import App from './components/app.vue' new Vue({ el: 'body',components:{App} });</pre> </div> <p>这样运行命令webpack就可以看到<a href="/tag/xiaoguo/" target="_blank" class="keywords">效果</a>了 </p> <p>这里用到了ES6的模块儿—<code>import</code>,<code>export</code></p> <p><code><h3>export</h3></code><h3>命令</h3></p> <p>export命令用于规定模块的对外接口。一个模块就是一个独立<a href="/tag/wenjian/" target="_blank" class="keywords">文件</a>。该<a href="/tag/wenjian/" target="_blank" class="keywords">文件</a>内的所有变量外部都无法<a href="/tag/huoqu/" target="_blank" class="keywords">获取</a>。如果希望外部能够读取模块内部的某个变量,就必须使用export关键字<a href="/tag/duiwaibaolu/" target="_blank" class="keywords">对外暴露</a>出该变量。例如:</p> <div class="jb51code"> <pre class="brush:js;"> //export.js export var firstName = 'Michael'; export var lastName = 'Jackson'; export var year = 1958;</pre> </div> <p>这样就可以对外<a href="/tag/shuchu/" target="_blank" class="keywords">输出</a>三个变量。</p> <p><code><h3>import</h3></code><h3>命令</h3></p> <p>使用<code>export</code><a href="/tag/duiwaibaolu/" target="_blank" class="keywords">对外暴露</a>了接口后,其他js<a href="/tag/wenjian/" target="_blank" class="keywords">文件</a>通过<code>import</code>命令加载这个模块<a href="/tag/wenjian/" target="_blank" class="keywords">文件</a>。上面暴露的三个变量在另一个js<a href="/tag/wenjian/" target="_blank" class="keywords">文件</a>中引入如下:</p> <div class="jb51code"> <pre class="brush:js;"> //import.js import {firstName,lastName,year} from './export'; function setName(element){ element.textContent = firstName + ' ' + lastName; }</pre> </div> <p><span style="color: #3366ff"><h3>webpack的hot-reload</h3></p> <p>前端<a href="/tag/zidong/" target="_blank" class="keywords">自动</a>刷新现在已经很常见了,即改变<a href="/tag/yemian/" target="_blank" class="keywords">页面</a>后,浏览器<a href="/tag/zidong/" target="_blank" class="keywords">自动</a>刷新,但是这个<a href="/tag/gongneng/" target="_blank" class="keywords">功能</a>在我们做单<a href="/tag/yemian/" target="_blank" class="keywords">页面</a>应用时候会很不好用,所以,webpack<a href="/tag/zhichi/" target="_blank" class="keywords">支持</a>hot-reload(热替换),当我们<a href="/tag/xiugai/" target="_blank" class="keywords">修改</a>模块时候不会<a href="/tag/yemian/" target="_blank" class="keywords">页面</a>不会刷新,会直接在<a href="/tag/yemian/" target="_blank" class="keywords">页面</a>中生效。</p> <p><span style="color: #3366ff"><h3>hot-reload的基础—webpack-dev-server</h3></p> <p>webpack-dev-server<a href="/tag/zhichi/" target="_blank" class="keywords">支持</a>两种模式的<a href="/tag/zidong/" target="_blank" class="keywords">自动</a>刷新<a href="/tag/yemian/" target="_blank" class="keywords">页面</a>:</p> <p> iframe模式(<a href="/tag/yemian/" target="_blank" class="keywords">页面</a>嵌入一个iframe并在其中呈现<a href="/tag/yemian/" target="_blank" class="keywords">页面</a>的变化) </p> <p> inline模式(一个小型的webpack-dev-server客户端会作为入口<a href="/tag/wenjian/" target="_blank" class="keywords">文件</a>打包,这个客户端会在后端<a href="/tag/daima/" target="_blank" class="keywords">代码</a>改变的时候刷新<a href="/tag/yemian/" target="_blank" class="keywords">页面</a>) </p> <p><h3>iframe模式</h3></p> <p>使用iframe模式无需额外的配置,在dos下输入命令</p> <div class="jb51code"> <pre class="brush:bash;"> $ webpack-dev-server</pre> </div> <p>在浏览器中输入 <code>http://loacalhost:8080/webpack-dev-server/index.html</code></p> <p><h3>inline模式</h3></p> <p>在dos下输入命令</p> <div class="jb51code"> <pre class="brush:bash;"> $ webpack-dev-server --inline --hot</pre> </div> <p>启动服务器,在浏览器中打开<code> http://loacalhost:8080</code> 就可以看到我们的<a href="/tag/yemian/" target="_blank" class="keywords">页面</a>,此时<a href="/tag/xiugai/" target="_blank" class="keywords">修改</a>app.vue中的css,以及html中的<a href="/tag/wenzi/" target="_blank" class="keywords">文字</a>,都可以看到在浏览器中立马呈现。 </p> <p>关于webpack-dev-server的详细说明,可以参考官方文档或者<a href="/tag/boke/" target="_blank" class="keywords">博客</a>WEBPACK DEV SERVER。</p> <p><h3>这里有一个问题需要说明下</h3></p> <p>在很多<a href="/tag/wenzhang/" target="_blank" class="keywords">文章</a>中都说,<a href="/tag/xiugai/" target="_blank" class="keywords">修改</a>app.vue<a href="/tag/wenjian/" target="_blank" class="keywords">文件</a>中script<a href="/tag/biaoqian/" target="_blank" class="keywords">标签</a>中的msg<a href="/tag/wenzi/" target="_blank" class="keywords">文字</a>,会在浏览器中立即呈现<a href="/tag/xiaoguo/" target="_blank" class="keywords">效果</a>,但是事实上我在做demo的时候并没有出现这个<a href="/tag/xiaoguo/" target="_blank" class="keywords">效果</a>,Google了很多,找到了答案,尤大说:“data是初始值,但热更新的时候会保留当前状态”。</p> <p>至此,关于webpack+vue的基本结束,虽然简单,但是由于在这个过程中也遇到一些坑,所以总结下,关于对vue的研究,这才只是个开始…</p> <p><h3>附:</h3></p> <p>我的webpack<a href="/tag/peizhiwenjian/" target="_blank" class="keywords">配置文件</a>:</p> <div class="jb51code"> <pre class="brush:js;"> var path = require('path'); module.exports = { entry: './src/main.js',output: { path: './dist',publicPath:'dist/',filename: 'build.js' },//配置<a href="/tag/zidong/" target="_blank" class="keywords">自动</a>刷新,如果打开会使浏览器刷新而不是热替换 /*devServer: { historyApiFallback: true,hot: false,inline: true,grogress: true },*/ module: { loaders: [ //转化ES6语法 { test: /\.js$/,loader: 'babel',exclude: /node_modules/ },//解析.vue<a href="/tag/wenjian/" target="_blank" class="keywords">文件</a> { test:/\.vue$/,loader:'vue' },//<a href="/tag/tupian/" target="_blank" class="keywords">图片</a>转化,小于8K<a href="/tag/zidong/" target="_blank" class="keywords">自动</a>转化为base64的编码 { test: /\.(png|jpg|gif)$/,loader:'url-loader?limit=8192' } ] },vue:{ loaders:{ js:'babel' } },resolve: { // require时省略的扩展名,如:require('app') 不需要app.js extensions: ['','.js','.vue'],// 别名,可以直接使用别名来代表设定的路径以及其他 alias: { filter: path.join(__dirname,'./src/filters'),components: path.join(__dirname,'./src/components') } } }</pre> </div> <p>package.json<a href="/tag/wenjian/" target="_blank" class="keywords">文件</a>:</p> <div class="jb51code"> <pre class="brush:js;"> { "name": "webpackvue","version": "1.0.0","description": "","main": "vue.js","scripts": { "test": "echo \"Error: no test specified\" && exit 1" },"author": "","license": "ISC","devDependencies": { "babel-core": "^6.9.1","babel-loader": "^6.2.4","babel-plugin-transform-runtime": "^6.9.0","babel-preset-es2015": "^6.9.0","babel-preset-stage-0": "^6.5.0","babel-runtime": "^6.9.2","<a href="/tag/css/" target="_blank" class="keywords">css-</a>loader": "^0.23.1","file-loader": "^0.8.5","style-loader": "^0.13.1","url-loader": "^0.5.7","vue":"^1.0.24","vue-router":"^0.7.13","vue-hot-reload-api": "^1.3.2","vue-html-loader": "^1.2.2","vue-loader": "^8.5.2","vue-style-loader": "^1.0.0","webpack": "^1.13.1","webpack-dev-server": "^1.14.1","webpack-merge": "^0.13.0" } }</pre> </div> <p><h3>总结</h3></p> <p>以上就是这篇<a href="/tag/wenzhang/" target="_blank" class="keywords">文章</a>的全部<a href="/tag/neirong/" target="_blank" class="keywords">内容</a>了,希望本文的<a href="/tag/neirong/" target="_blank" class="keywords">内容</a>对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。</p></div> <div class="topcard-tags"><a href="/tag/vue/" class="tag_link" target="_blank">vue</a><a href="/tag/pvue/" class="tag_link" target="_blank">vue</a><a href="/tag/vuep/" class="tag_link" target="_blank">vue</a><a href="/tag/vuezujiankaifa/" class="tag_link" target="_blank">vue组件开发</a><a href="/tag/webpack/" class="tag_link" target="_blank">webpack</a><a href="/tag/pwebpack/" class="tag_link" target="_blank">webpack</a><a href="/tag/webpackp/" class="tag_link" target="_blank">webpack</a><a href="/tag/shili/" class="tag_link" target="_blank">实例</a><a href="/tag/shilip/" class="tag_link" target="_blank">实例</a><a href="/tag/pshili/" class="tag_link" target="_blank">实例</a><a href="/tag/zujian/" class="tag_link" target="_blank">组件</a><a href="/tag/zujianp/" class="tag_link" target="_blank">组件</a><a href="/tag/pzujian/" class="tag_link" target="_blank">组件</a></div> <ul class="list-group"> <li class="list-group-item"><a href="/vue/45233.html" title="webpack+vue.js快速入门教程">上一篇:webpack+vue.js快速入门教程</a><a href="/vue/45160.html" title="require.js 加载 vue组件 r.js 合并压缩的实例" class="text-muted pull-right">下一篇:require.js 加载 vue组件 r.js 合并</a> </li> </ul> </div> </div> </div> <!-- row end --> <div class="row row-sm"> <div class="col-sm-12 col-md-12 col-lg-12"> <div class="card"> <ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-4605373693034661" data-ad-slot="9144498553"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script></div> </div> </div> <div class="row row-sm"> <div class="col-sm-12 col-md-12 col-lg-12"> <div class="card"> <div class="title"><h1>猜你在找的Vue相关文章</h1></div> <div class="list_con"> <a href="/vue/997429.html" title="elementui的el-tree第一次加载无法展开和选中的问题"><div class="title">elementui的el-tree第一次加载无法展开和选中的问题</div> <div class="summary">问题现象 elmentui的el-tree数据加载问题,导致第一次加载选中当前节点和高亮当前节点没有...</div> <time class="summary">作者:前端之家 时间:2021-02-17</time> </a> </div> <div class="list_con"> <a href="/vue/997428.html" title="VSCODE打开一个文件,另一个文件就关闭的问题的解决方法"><img class="lazy" src="/images/np.jpg" data-original="/res/2021/02-17/21/9e2e32f4ad7f00fdffa540c0f7d918e1.png" title="" width="160" height="90" style="float:right;margin-left:30px;display:none;" /><div class="title">VSCODE打开一个文件,另一个文件就关闭的问题的解决方法</div> <div class="summary">因为刚打开文件,vscode默认是预览状态,如果编辑过之后,就不会有这个问题。 可以通过双击...</div> <time class="summary">作者:前端之家 时间:2021-02-17</time> </a> </div> <div class="list_con"> <a href="/vue/997427.html" title="一文带你学会国产加密算法SM4的vue实现方案"><img class="lazy" src="/images/np.jpg" data-original="/res/2021/02-17/21/29a0275a80b1fac147aa687624a9bfe1.png" title="" width="160" height="90" style="float:right;margin-left:30px;display:none;" /><div class="title">一文带你学会国产加密算法SM4的vue实现方案</div> <div class="summary">前言 上篇文章我们介绍了国产SM4加密算法的后端java实现方案。没有看过的小伙伴可以看一下...</div> <time class="summary">作者:前端之家 时间:2021-02-17</time> </a> </div> <div class="list_con"> <a href="/vue/997426.html" title="解决vue报错:Module build failed (from ./node_modules/_eslint-loader@2.2.1@eslint-loader/index.js): TypeError: Cannot read property 'range' of null"><img class="lazy" src="/images/np.jpg" data-original="/res/2021/02-17/21/ac433ae643be89ef37b127b24fa2a61a.png" title="" width="160" height="90" style="float:right;margin-left:30px;display:none;" /><div class="title">解决vue报错:Module build failed (from ./node_modules/_eslint-loader@2.2.1@eslint-loader/index.js): TypeError: Cannot read property 'range' of null</div> <div class="summary">在项目中引入动态路由时报错 写法: 报错: Module build failed (from ./node_modules/_esl...</div> <time class="summary">作者:前端之家 时间:2021-02-17</time> </a> </div> <div class="list_con"> <a href="/vue/997425.html" title="vue中解决Uncaught ReferenceError: regeneratorRuntime is not defined问题"><img class="lazy" src="/images/np.jpg" data-original="/res/2021/02-17/21/9f2045768979b899c69e66354a1f62d0.png" title="" width="160" height="90" style="float:right;margin-left:30px;display:none;" /><div class="title">vue中解决Uncaught ReferenceError: regeneratorRuntime is not defined问题</div> <div class="summary">问题产生 在使用babel编译es6时,遇到报错Uncaught ReferenceError: regeneratorRuntime i...</div> <time class="summary">作者:前端之家 时间:2021-02-17</time> </a> </div> <div style="border-bottom: 1px solid #f4f4f4;margin-top:20px;"> <ins class="adsbygoogle" style="display:block" data-ad-format="fluid" data-ad-layout-key="-fr-2o+fp-dx-wx" data-ad-client="ca-pub-4605373693034661" data-ad-slot="4561116489"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div><div class="list_con"> <a href="/vue/997423.html" title="element-UI中手动调用table排序"><div class="title">element-UI中手动调用table排序</div> <div class="summary">&amp;lt;el-table :data=&amp;quot;tableData&amp;quot; &amp;quot;width...</div> <time class="summary">作者:前端之家 时间:2021-02-17</time> </a> </div> <div class="list_con"> <a href="/vue/994895.html" title="Vue双向绑定原理及其实现"><img class="lazy" src="/images/np.jpg" data-original="/res/2021/01-10/13/13055abb3c90b13ed50222b980d4a858.gif" title="" width="160" height="90" style="float:right;margin-left:30px;display:none;" /><div class="title">Vue双向绑定原理及其实现</div> <div class="summary">在之前面试的时候被面试官问到是否了解Vue双向绑定的原理,其实自己之前看过双向绑定的原理...</div> <time class="summary">作者:前端之家 时间:2021-01-10</time> </a> </div> <div class="list_con"> <a href="/vue/994894.html" title="Vue事件修饰符详解"><img class="lazy" src="/images/np.jpg" data-original="/res/2021/01-10/13/b4cf1534468c90981806f6f883c8e876.png" title="" width="160" height="90" style="float:right;margin-left:30px;display:none;" /><div class="title">Vue事件修饰符详解</div> <div class="summary">整体学习Vue时看到Vue文档中有事件修饰符的描述,但是看了之后并没有理解是什么意思,于是...</div> <time class="summary">作者:前端之家 时间:2021-01-10</time> </a> </div> <div class="list_con"> <a href="/vue/994741.html" title="Vue-router插件使用"><img class="lazy" src="/images/np.jpg" data-original="/res/2021/01-01/21/bf84b4bbaaac53ea67ceec4898781512.png" title="" width="160" height="90" style="float:right;margin-left:30px;display:none;" /><div class="title">Vue-router插件使用</div> <div class="summary">单页面原理 Vue是单页面开发,即页面不刷新。 页面不刷新,而又要根据用户选择完成内容的更...</div> <time class="summary">作者:前端之家 时间:2021-01-01</time> </a> </div> <div class="list_con"> <a href="/vue/994740.html" title="Vue 分支循环"><img class="lazy" src="/images/np.jpg" data-original="/res/2021/01-01/21/ed0d5c51fe9891d0c42f795f23333ec1.png" title="" width="160" height="90" style="float:right;margin-left:30px;display:none;" /><div class="title">Vue 分支循环</div> <div class="summary">v-for 通过v-for进行循环,不光可以拿到元素本身,也可以拿到索引值。 如果数据是对象类型...</div> <time class="summary">作者:前端之家 时间:2021-01-01</time> </a> </div> <div style="border-bottom: 1px solid #f4f4f4;margin-top:20px;"> <ins class="adsbygoogle" style="display:block" data-ad-format="fluid" data-ad-layout-key="-fr-2o+fp-dx-wx" data-ad-client="ca-pub-4605373693034661" data-ad-slot="4561116489"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div></div> </div> </div> </div> <!-- left end--> <!-- right --> <div class="col-sm-12 col-md-12 col-lg-3"> <!-- row --> <div class="row row-sm"> <div class="col-sm-12 col-md-12 col-lg-12"> <div class="card"> <label class="main-content-label ">编程分类</label> <div class="cate mt-20"><a href="/html/" title="HTML">HTML</a><a href="/html5/" title="HTML5">HTML5</a><a href="/js/" title="JavaScript">JavaScript</a><a href="/css/" title="CSS">CSS</a><a href="/jquery/" title="jQuery">jQuery</a><a href="/bootstrap/" title="Bootstrap">Bootstrap</a><a href="/angularjs/" title="Angularjs">Angularjs</a><a href="/typescript/" title="TypeScript">TypeScript</a><a href="/vue/" title="Vue">Vue</a><a href="/dojo/" title="Dojo">Dojo</a><a href="/json/" title="Json">Json</a><a href="/electron/" title="Electron">Electron</a><a href="/nodejs/" title="Node.js">Node.js</a><a href="/extjs/" title="extjs">extjs</a><a href="/express/" title="Express ">Express </a><a href="/xml/" title="XML">XML</a><a href="/es6/" title="ES6">ES6</a><a href="/ajax/" title="Ajax">Ajax</a><a href="/flash/" title="Flash">Flash</a><a href="/unity/" title="Unity">Unity</a><a href="/react/" title="React">React</a><a href="/flex/" title="Flex">Flex</a><a href="/antdesign/" title="Ant Design">Ant Design</a><a href="/webfrontend/" title="Web前端">Web前端</a><a href="/weapp/" title="微信小程序">微信小程序</a><a href="/wxmp/" title="微信公众号">微信公众号</a><div class="clearfix"></div> </div> </div> </div> </div> <!-- row end --> <!-- row --> <div class="row row-sm"> <div class="col-sm-12 col-md-12 col-lg-12"> <div class="card"> <!-- f2er-rightads --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-4605373693034661" data-ad-slot="7756441254" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> </div> </div> <!-- row end --> <!-- row --> <div class="row row-sm"> <div class="col-sm-12 col-md-12 col-lg-12"> <div class="card"> <label class="main-content-label ">最新文章</label> <ul class="n-list"><li><a href="/vue/997429.html" title="elementui的el-tree第一次加载无法展开和选中的问题" target="_blank">• elementui的el-tree第一次</a></li> <li><a href="/vue/997428.html" title="VSCODE打开一个文件,另一个文件就关闭的问题的解决方法" target="_blank">• VSCODE打开一个文件,另一</a></li> <li><a href="/vue/997427.html" title="一文带你学会国产加密算法SM4的vue实现方案" target="_blank">• 一文带你学会国产加密算法</a></li> <li><a href="/vue/997426.html" title="解决vue报错:Module build failed (from ./node_modules/_eslint-loader@2.2.1@eslint-loader/index.js): TypeError: Cannot read property 'range' of null" target="_blank">• 解决vue报错:Module buil</a></li> <li><a href="/vue/997425.html" title="vue中解决Uncaught ReferenceError: regeneratorRuntime is not defined问题" target="_blank">• vue中解决Uncaught Refere</a></li> <li><a href="/vue/997424.html" title="vue的自定义组件如何使用prop传值?" target="_blank">• vue的自定义组件如何使用p</a></li> <li><a href="/vue/997423.html" title="element-UI中手动调用table排序" target="_blank">• element-UI中手动调用tabl</a></li> <li><a href="/vue/994895.html" title="Vue双向绑定原理及其实现" target="_blank">• Vue双向绑定原理及其实现</a></li> <li><a href="/vue/994894.html" title="Vue事件修饰符详解" target="_blank">• Vue事件修饰符详解</a></li> <li><a href="/vue/994741.html" title="Vue-router插件使用" target="_blank">• Vue-router插件使用</a></li> </ul> </div> </div> </div> <!-- row end --> <!-- row --> <div class="row row-sm"> <div class="col-sm-12 col-md-12 col-lg-12"> <div class="card"> <label class="main-content-label ">热门标签 <span class="pull-right tx-12"> <a href="/all" target="_blank">更多 ►</a></span> </label> <div class="topcard-tags"><a href="/tag/guanbiyangao/" title="关闭广告" target="_blank">关闭广告</a><a href="/tag/danduheaders/" title="单独headers" target="_blank">单独headers</a><a href="/tag/fengzhuangdaima/" title="封装代码" target="_blank">封装代码</a><a href="/tag/tishicuowu/" title="提示错误" target="_blank">提示错误</a><a href="/tag/zhengshuzhengze/" title="整数正则" target="_blank">整数正则</a><a href="/tag/fei0kaitou/" title="非0开头" target="_blank">非0开头</a><a href="/tag/tiaoye/" title="跳页" target="_blank">跳页</a><a href="/tag/chuyema/" title="出页码" target="_blank">出页码</a><a href="/tag/antdtable/" title="antd table" target="_blank">antd table</a><a href="/tag/tishiURLweizhuce/" title="提示URL未注册" target="_blank">提示URL未注册</a><a href="/tag/gongzhonghaozhifu/" title="公众号支付" target="_blank">公众号支付</a><a href="/tag/vuehashmoshi/" title="vue hash模式" target="_blank">vue hash模式</a><a href="/tag/iSlider/" title="iSlider" target="_blank">iSlider</a><a href="/tag/chepaijianpan/" title="车牌键盘" target="_blank">车牌键盘</a><a href="/tag/xunhuantupian/" title="循环图片" target="_blank">循环图片</a><a href="/tag/echartsshuangzhexian/" title="echarts 双折线" target="_blank">echarts 双折</a><a href="/tag/zuoyoubuju/" title="左右布局" target="_blank">左右布局</a><a href="/tag/DllPlugin/" title="DllPlugin" target="_blank">DllPlugin</a><a href="/tag/duixiangchuangjian/" title="对象创建" target="_blank">对象创建</a><a href="/tag/daziyouxi/" title="打字游戏" target="_blank">打字游戏</a><a href="/tag/quanxuan/" title="圈选" target="_blank">圈选</a><a href="/tag/lianglan/" title="两栏" target="_blank">两栏</a><a href="/tag/yunhanshu/" title="云函数" target="_blank">云函数</a><a href="/tag/mengban/" title="蒙版" target="_blank">蒙版</a><a href="/tag/ES2020/" title="ES2020" target="_blank">ES2020</a><a href="/tag/chuchuang/" title="橱窗" target="_blank">橱窗</a><a href="/tag/wufenggundonglunbo/" title="无缝滚动轮播" target="_blank">无缝滚动轮播</a><a href="/tag/sekuaipengzhuang/" title="色块碰撞" target="_blank">色块碰撞</a><a href="/tag/zujianxiaohui/" title="组件销毁" target="_blank">组件销毁</a><a href="/tag/wendangcaozuo/" title="文档操作" target="_blank">文档操作</a></div> </div> </div> </div> <!-- row end --> <!-- row --> <div class="row row-sm"> <div class="col-sm-12 col-md-12 col-lg-12"> <div class="card"> <!-- f2er-rightads --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-4605373693034661" data-ad-slot="7756441254" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> </div> </div> <!-- row end --> </div> <!-- right end --> </div> </div> <footer id="footer"> <div class="container"> <div class="row hidden-xs"> <dl class="col-sm-6 site-link"> <dt>最近更新</dt><dd><a href="/win11/1005328.html" title="小米手机重装系统价格多少?专业维修服务详解" target="_blank">· 小米手机重装系统价格多少?专业维修服务详解</a><span class="text-muted pull-right">02-05</span></dd> <dd><a href="/win11/1005327.html" title="手把手教你重装电脑系统,让你的电脑焕然一新!" target="_blank">· 手把手教你重装电脑系统,让你的电脑焕然一新!</a><span class="text-muted pull-right">02-05</span></dd> <dd><a href="/win11/1005326.html" title="教你一步步重装XP系统,让你的电脑重获新生" target="_blank">· 教你一步步重装XP系统,让你的电脑重获新生</a><span class="text-muted pull-right">02-05</span></dd> <dd><a href="/win11/1005325.html" title="从备份到上网:一步步教你重装电脑系统" target="_blank">· 从备份到上网:一步步教你重装电脑系统</a><span class="text-muted pull-right">02-05</span></dd> <dd><a href="/win11/1005324.html" title="Sony笔记本电脑一键重装系统详细图文教程" target="_blank">· Sony笔记本电脑一键重装系统详细图文教程</a><span class="text-muted pull-right">02-05</span></dd> <dd><a href="/win11/1005323.html" title="Lenovo笔记本重装系统超详细教程,小白也能轻松上手" target="_blank">· Lenovo笔记本重装系统超详细教程,小白也能轻松...</a><span class="text-muted pull-right">02-05</span></dd> <dd><a href="/win11/1005322.html" title="联想笔记本一键重装Win10系统详细教程" target="_blank">· 联想笔记本一键重装Win10系统详细教程</a><span class="text-muted pull-right">02-05</span></dd> <dd><a href="/win11/1005321.html" title="电脑系统故障无需愁,专业维修店帮你重装旧貌换新颜" target="_blank">· 电脑系统故障无需愁,专业维修店帮你重装旧貌换新...</a><span class="text-muted pull-right">02-05</span></dd> <dd><a href="/win11/1005320.html" title="联想笔记本一键重装Win10系统图文教程,小白也能轻松搞定!" target="_blank">· 联想笔记本一键重装Win10系统图文教程,小白也能...</a><span class="text-muted pull-right">02-05</span></dd> <dd><a href="/win11/1005319.html" title="笔记本重装系统图文教程:从光盘启动一步到位" target="_blank">· 笔记本重装系统图文教程:从光盘启动一步到位</a><span class="text-muted pull-right">02-05</span></dd> </dl> <dl class="col-sm-4 site-link"> <dt>好站推荐</dt><dd> <a href="https://www.runoob.com" title="菜鸟教程(www.runoob.com)提供了编程的基础技术教程, 介绍了HTML、CSS、Javascript、Python,Java,Ruby,C,PHP , MySQL等各种编程语言的基础知识。 同时本站中也提供了大量的在线实例,通过实例,您可以更好的学习编程。" target="_blank">菜鸟教程</a></dd><dd> <a href="https://www.jb51.cc" title="编程之家(www.jb51.cc)是成立于2017年面向全球中文开发者的技术内容分享平台。提供编程导航、编程问答、编程博文、编程百科、编程教程、编程工具、编程实例等开发者最需要的编程技术内容与开发工具支持,与你一起学习编程,相信编程改变未来!" target="_blank">编程之家</a></dd><dd> <a href="" title="前端之家 f2er.com 前端开发人员所需学习知识手册。" target="_blank">前端之家</a></dd></dl> <dl class="col-sm-2 site-link"> <dt>商务合作</dt> <dd><a target="_blank" href="http://wpa.qq.com/msgrd?v=3&uin=76874919&site=qq&menu=yes">联系我们</a></dd> </dl> </div> <div class="copyright"> Copyright © 2019 前端之家. 当前版本 V7.0.16<br> <span class="ml5">前端之家 版权所有 <a href="https://beian.miit.gov.cn/" target="_blank" rel="nofollow">闽ICP备13020303号-10</a></span> </div> </div> </footer> <script type="text/javascript" src="/js/base.js"></script> </body> </html>