21-01-03Java学习

总结

组件

  • 组件:

    • 完成特定功能的自定义html标签
  • 组件分类:

    • 全局组件:全局都可以用

      Vue.component("mycomponent",{
                      template:"<h1>我是全局组件</h1>"
                  })
      
    • 局部组件:只有局部可以用

      new Vue({
                      el:"#test1",
                      /*局部组件*/
                      components:{
                          "inner":{
                              template:"<h1>我是局部组件</h1>"
                          }
                      }
                  })
      
  • 注意:

    • html标签的名字尽量小写,要是有大写,使用时用-隔开
    • 定义的模板有且只能有一个根标签
  • 组件模板

    • 模板写在template中

    • html中写模板(常用),或者直接将模板放到标签中

      <template id="tem">
              <div>
                  username:<input type="text" /><br>
                  password:<input type="password" />
              </div>
          </template>
      
    • js中写模板

      <script type="text/template" id="tem1">
              <div>
                  name:<input type="text" /><br>
                  pwd:<input type="password" />
              </div>
          </script>
      
  • 从模板中获取数据

    • 数据要在组件中,只能在自己的模板中使用自己的数据

    • 模板中准备一个data函数,函数的返回值要是json格式(全局和局部一样)

      Vue.component("mycomponent",{
                      template:"#tem",
                      data(){
                          return{
                              name:"张三"
                          }
                      }
                  })
      

路由

  • 路由负责将特定的浏览器请求映射组件代码中

  • 路由不包含在vue中,是一个插件,需要单独下载

  • 使用

    <!DOCTYPE html>
    <html lang="en">
        <head>
            <meta charset="UTF-8">
            <title>Title</title>
            <!--Vue的核心库-->
            <script src="node_modules/vue/dist/vue.js"></script>
            <!--路由核心库-->
            <script src="node_modules/vue-router/dist/vue-router.js"></script>
        </head>
        <body>
            <!--
                路由:
                    路由负责将特定的浏览器请求映射组件代码中
            -->
            <div id="test">
                <!--关联路由地址-->
                <router-link to="/index">首页</router-link>
                <router-link to="/emp">员工页面</router-link>
                <router-link to="/dept">部门页面</router-link>
    
                <!--告诉vue,组件渲染的位置-->
                <router-view></router-view>
    
            </div>
            <script type="text/javascript">
                /*1.准备组件*/
                let index = Vue.component("index",{
                    template:"<h1>首页</h1>"
                })
                let emp = Vue.component("emp",{
                    template:"<h1>员工页面</h1>"
                })
                let dept = Vue.component("dept",{
                    template:"<h1>部门页面</h1>"
                })
    
                /*2.创建路由*/
                let router = new VueRouter({
                    routes:[
                        {path:"/index",component:index},
                        {path:"/emp",component:emp},
                        {path:"/dept",component:dept}
                    ]
                })
    
                new Vue({
                    el:"#test",
                    /*3.使用路由*/
                    router
                })
            </script>
        </body>
    </html>
    

watch属性

  • 用来监听值的变化

    <body>
            <div id="test">
               <input type="text" v-model="msg" />
            </div>
            <script type="text/javascript">
                /*
                * watch属性:主要用来监听值的变化
                * */
                new Vue({
                    el:"#test",
                    data:{
                        msg:""
                    },
                    watch:{
                        msg(a,b){
                            console.debug("新值:"+a)
                            console.debug("老值:"+b)
                        }
                    }
                })
            </script>
        </body>
    

webpack

  • 优势

    • 减少页面类请求次数
    • 转换ES6的语法,兼容老版本
    • 打包后的代码很乱,安全
  • 使用(后面有其他方法,了解)

    • 先安装淘宝镜像(快)npm i -g cnpm --registry=https://registry.npm.taobao.org

    • 再安装cnpm install -g webpack 和cnpm install -g webpack-cli

    • 配置webpack.config.js文件打包

      var path = require("path");
      module.exports = {
      //这是要打包的js
      entry: './src/main.js',
      output: {
      path: path.resolve(__dirname, './dist'),//dist是打包后存放的地址
      filename: 'bundle.js'
      }
      }
      
    • css加载

      1. cnpm install style-loader --save-dev (使用css的加载器)

      2. cnpm install css-loader --save-dev (编译css的加载器)

      3. 打包的js中引用require(’…/css/index.css’)选择要引入的css

      4. 在webpack.config.js下面引入

        module: {
                rules: [
                    {
                        test: /\.css$/,     //匹配文件规则
                        use: ['style-loader', 'css-loader']    //匹配后使用什么加载器进行模块加载
                        // webpack use的配置,是从右到左进行加载的
                    },
                ]
            }
        
      5. webpack打包

  • 热更新

    • 可以web访问

    • 安装插件:npm install webpack-dev-server --save-dev

    • 添加中package.json启动脚本

      "scripts": {
              "dev": "webpack-dev-server --inline --progress --config ./webpack.config.js",   
      
    • package.json中更新版本

      "devDependencies": {
        "css-loader": "^3.1.0",
        "style-loader": "^0.23.1",
        "webpack": "^3.10.0",
        "webpack-dev-server": "^2.9.7"
      },
      
    • 在执行 cnpm install

    • 再npm run dev运行

脚手架

  • vue官方提供了一个快速搭建vue项目的脚手架:vue-cli,使用它能快速的构建一个web工程模板。

  • 安装命令:npm install -g vue-cli

  • 快速创建webpack项目:vue init webpack

  • npm run dev测试

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值