赞
踩
组件 (Component) 是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素,封装可重用的代码。组件也可以表现为用 vue.js 特性进行了扩展的原生 HTML 元素。
一句话总结组件: 组件就是自定义标签,它内部存储了很多html代码
<body>
<mytag></mytag>
</body>
注意: mytag就是一个组件, 该组件必须通过Vue为mytag赋予一定的功能
<!-- 引入 核心,就有 内置的vue--> <script type="text/javascript" src="node_modules/vue/dist/vue.min.js"></script> </head> <body> <div id ="app"> <mycomponent></mycomponent> <mycomponent></mycomponent> <mycomponent></mycomponent> </div> </body> <!-- 组件的认识:组件 (Component) 是 Vue最强大的功能之一。组件可以扩展 HTML 元素,封装可重用的代码 一句话总结组件: 组件就是自定义标签,它内部存储了很多html代码 a.html b.html c.html 1000 2000 3000 这三个界面其中有公共的html代码是500行,组件就是把这500行代码抽成一个标签,然后让其它页面 去使用该标签就可以了 组件的分类: 1.全局组件(在所有vue实例中(在它所挂载元素下面有效)有效) 创建全局组件的语法格式: Vue.component("组件名",{ template:"html元素" }) 2.局部组件(在自己vue实例中(在它所挂载元素下面有效)有效) --> <script type="text/javascript"> Vue.component("mycomponent",{ // 必须要有 根 <h1> template:"<h1>我是全局组件</h1>" }) //挂载 new Vue({ el:"#app" }) </script>
<body>
<div id="app">
<mycomponent></mycomponent>
</div>
</body>
<script type="text/javascript">
Vue.component("mycomponent",{
// 必须要有 根 <div>
template:"<div><h1>我是全局组件</h1><h2>撒可见度</h2></div>"
})
//挂载
new Vue({
el:"#app"
})
</script>
body> <div id="app"> <mycomponents></mycomponents> <outercomponent></outercomponent> </div> <div id="app1"> <mycomponents></mycomponents> <outercomponent></outercomponent> </div> </body> <script type="text/javascript"> let outercomponent=Vue.component("outercomponent",{ // 必须要有 根 <h1> template:"<div><h1>我是全局组件</h1><h2>撒可见度</h2></div>" }) //挂载 new Vue({ el:"#app", components:{ //定义局部组件 mycomponents:{ template:"<h1>局部组件</h1>" }, //定义局部组件 ,引用已经创建 好的组件 innercompoments:outercomponent } }) new Vue({ el:"#app1" }) </script>
<div id="app"> <!-- 全局组件--> <outercomponent></outercomponent> <br/> <outercomponent></outercomponent> <template> <h2>测试</h2> </template> <!-- 局部组件--> <innercompoments></innercompoments> </div> <!-- 定义组件面板 --> <template id="mytemplate"> <form action="" method=""> username:<input type="text" name="username"><br/> username:<input type="text" name="username"><br/> username:<input type="text" name="username"><br/> <input type="submit" value="提交"> </form> </template> </body> <script type="text/javascript"> Vue.component("outercomponent",{ // 面板 id template:"#mytemplate" }) //挂载 new Vue({ el:"#app", components:{ //定义局部组件 innercompoments:{ template:"#mytemplate" }, } }) </script>
<div id="app"> <!-- 全局组件--> <outercomponent></outercomponent> <br/> <outercomponent></outercomponent> <!-- 局部组件--> <innercompoments></innercompoments> <script type="text/template"> <h1> 猜测是 </h1> </script> </div> <!-- 方式2和方式3的区别: 方式3把script标签直接放到挂载的dom中它是不能被渲染的--> <!-- 定义组件的模板方式3--> <script id="mytemplate" type="text/template"> <form action="" method=""> username:<input type="text" name="username"><br/> username:<input type="text" name="username"><br/> username:<input type="text" name="username"><br/> <input type="submit" value="提交"> </form> </form> </script> </body> <script type="text/javascript"> Vue.component("outercomponent",{ // 面板 id template:"#mytemplate" }) //挂载 new Vue({ el:"#app", components:{ //定义局部组件 innercompoments:{ template:"#mytemplate" }, } }) </script>
<div id="app"> <!-- 全局组件--> <mycomponent></mycomponent> <br/> </div> <!-- 方式2和方式3的区别: 方式3把script标签直接放到挂载的dom中它是不能被渲染的--> <!-- 定义组件的模板方式3--> <template id="mytemplate" > <form action="" method=""> <h2>{{name}}++ 的 {{age}}</h2> </form> </template> </body> <script type="text/javascript"> Vue.component("mycomponent",{ // 面板 id template:"#mytemplate", data:function () { return{ name:"萨克达", age:21, } } }) //挂载 new Vue({ el:"#app", data:{ name:"朵儿" } }) </script>
路由是负责将进入的浏览器请求映射到特定的组件代码中。
简单说路由就是url地址和对应的资源的映射,通过一个路径的url地址
<!--路由js--> <script type="text/javascript" src="node_modules/vue-router/dist/vue-router.min.js"></script> </head> <body> <div id="app"> <!-- 全局组件--> <router-link to="/index">首页</router-link> <router-link to="/product">产品</router-link> <router-link to="/employee">员工</router-link> <!-- 组件渲染位置 4.组件渲染的位置--> <router-view></router-view> <br/> </div> </body> <!-- 路由: 路由是负责将进入的浏览器请求映射到特定的组件代码中 url地址映射到组件(html代码) 做路由: 1.准备组件 2.映射关系(url映射组件) 3.告诉vue我要使用路由 4.组件渲染的位置 --> <script type="text/javascript"> /* 1.准备组件*/ let INDEX= Vue.component("index",{ template:"<h1>首页</h1>" }) let PRODUCT =Vue.component("product",{ template:"<h1>产品</h1>" }) let EMPLOYEE=Vue.component("employee",{ template:"<h1>员工</h1>" }) /*2.映射关系(url映射组件)*/ let router=new VueRouter({ routes:[ {path:"/index",component:INDEX}, {path:"/product",component:PRODUCT}, {path:"/employee",component:EMPLOYEE}, ] }) //挂载 /*3.告诉vue我要使用路由*/ new Vue({ el:"#app", router, }) </script>
body> <div id="app"> {{birth}}=={{saLay}} <input type="text" v-model ="message"> <br/> </div> </body> < <script type="text/javascript"> new Vue({ el: "#app", data:{ birthday:1429032123201, // 毫秒值 message:"" }, computed:{ birth(){ return new Date(this.birthday).getFullYear()+"年"+new Date(this.birthday).getMonth()+"月"; }, saLay(){ return 30*500+1500; } }, watch:{ message(newVal,oldVal){ //主要监控值的变化 console.debug("新值"+newVal) console.debug("老值"+oldVal) } } }) </script>
将许多碎小文件打包成一个整体,减少单页面内的衍生请求次数,提高网站效率。
Webpack 是一个前端资源加载/打包工具。它将根据模块的依赖关系进行静态分
析,然后将这些模块按照指定的规则生成对应的静态资源
本地安装:
npm install webpack --save-dev
npm install webpack-cli --save-dev
全局安装:–推荐使用 后面要用
npm install -g webpack
npm install -g webpack-cli
创建前端项目
npm init -y
webpack 命令就可以进行打包
webpack.config.js ,该文件与项目根处于同级目录
var path = require("path");
module.exports = {
entry: './src/main.js',
output: {
path: path.resolve(__dirname, './dist'),
filename: 'bundle.js'
}
}
webpack 可以使用 loader 来预处理文件。这允许你打包除 JavaScript 之外的任何静态资源。你可以使用 Node.js 来很简单地编写自己的 loader。
loader 通过在 require() 语句中使用 loadername! 前缀来激活,或者通过 webpack 配置中的正则表达式来自动应用 -
vue-loader 转换vue组件 *.vue
css-loader 加载css文件
babel-loader 加载 ES2015+ 代码,然后使用 Babel 转译为 ES5
步骤一:
npm install style-loader --save-dev npm install css-loader --save-dev a.js引入: var a = "a模块"; var b = require('./b.js'); console.log(b); require('../css/index.css') 步骤三:在webpack.config.js文件引入下面代码 var path = require("path"); module.exports = { entry: './web/js/a.js', output: { path: path.resolve(__dirname, './dist'), filename: 'bundle.js' }, module: { rules: [ { test: /\.css$/, //匹配文件规则 use: ['style-loader', 'css-loader'] //匹配后使用什么加载器进行模块加载 // webpack use的配置,是从右到左进行加载的 }, ] } } 步骤四:打包:webpack
刚才的案例中,我们都是本地运行。webpack给我们提供了一个插件,可以帮我们运行一个web服务;
1)安装插件:npm install webpack-dev-server --save-dev
2)添加启动脚本
在package.json中配置script
"scripts": { "dev": "webpack-dev-server --inline --progress --config ./webpack.conf.js", }, --inline:自动刷新 --hot:热加载 --port:指定端口 --open:自动在默认浏览器打开 --host:可以指定服务器的 ip,不指定则为127.0.0.1 npm run dev/test 出现错误之后 https://www.cnblogs.com/gqx-html/p/10756388.html https://www.cnblogs.com/laraLee/p/9174383.html "devDependencies": { "css-loader": "^3.1.0", "style-loader": "^0.23.1", "webpack": "^3.10.0", "webpack-dev-server": "^2.9.7" }, 在执行 npm install
在开发中,需要打包的东西不止是js、css、html。还有更多的东西要处理,这些插件和加载器如果我们一一去添加就会比较麻烦。
幸好,vue官方提供了一个快速搭建vue项目的脚手架:vue-cli
使用它能快速的构建一个web工程模板。
官网:https://github.com/vuejs/vue-cli
安装命令:npm install -g vue-cli
vue init webpack
npm run dev
npm run build 打包可以在服务器运行
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。