Vue_组件化编码,组件间通信1,通过标签传递数据

Vue_案例_初始化显示_采用组件化编写页面_实现组件间通信---vue工作笔记0022 我们来做一个上面的这样的页面,我们已经有了html页面,以及css文件了. 首先我们把原来的src文件夹中的内容,备份一下到 src-base文件夹中去. 然后,我们新建一个src文件夹, 先把原来的src文件夹中的内容全部删除掉 然后我们再去 我们上面的那个页面的,.html文件.css文件等需要的,copy到static文件夹下的comment_page文件夹下. 然后我们先打开这个静态的.html文件看看,可以看到这个样子 然后我们开始组件化,编写vue页面,怎么做?.. 阅读详情

组件化编码的基本流程:
1.拆分组件
2.实现静态组件:显示的界面数据是固定的,也没有交互
3.动态组件:有两个方面是动态的,初始化显示和交互

组件间通信
1.通过标签传递
组件接收父组件传递过来的数据,首先要有声明,接收传递过来的属性;这个属性就会成为组件对象的属性
示例编码:
拆分为App、Add、List和Item组件
在这里插入图片描述
js的入口文件main.js

/*
入口JS
*/
import Vue from 'vue'
import App from './App.vue'

// 创建vm
/* eslint-disable no-new */
new Vue({
  el: '#app',
  components: {App}, // 映射组件标签
  template: '<App/>' // 指定需要渲染到页面的模板
})

根组件:App.vue
数据放在哪个组件里面,看这数据是某个组件用到,还是某些组件用到;
如果是某个组件用到,那就放到这个组件里面;
如果是某些组件用到,那就放到他们的父组件里面;
由于Add组件需要进行添加数据,List组件需要显示,所以数据放在App组件中

<template>
  <div class="container">
    <Add :addComment="addComment"/>    //将addComment方法传递给Add组件,在Add组件进行调用
    //通过标签传递数据,如果不加冒号传递的将是文本,加了冒号传递是这个变量的值
    //deleteComment是给Item组件调用的,由于在App组件看不到Item组件,所以逐层传递
    <List :comments="comments" :deleteComment="deleteComment"/>    
  </div>
</template>

<script>
    //引入Add和List子组件
  import Search from './components/Add.vue'
  import Main from './components/List.vue'

  export default {
     data(){
        return{
           comments: [{
             name: 'BOB',
             content: 'Vue还不错'
         },
        {
            name: 'JACK',
            content: 'Vue挺好'
        }]
            }
        },
    //往数组中添加元素,this.comments.unshift(comment)
    //this.comments是数组,comment是添加的元素,添加在上方用unshift()方法
    methods: {
        //添加评论
        addComment (comment){
            this.comments.unshft(comment)
        },
        //删除指定下标的评论
        deleteComment (index){
            this.comments.splice(index,1)
        }
    }
          components:  {  //映射组件标签
              Add,
              List
        }
  }
</script>

<style>
</style>

数据展示,需要由App交给它的子组件List,所以要将数据传递过去,组件间通信
1.最原始的方式:通过标签属性传递,最好是同名,如上
App将数据传递给List组件,在List组件里要进行接收;
声明接收属性
组件List.vue

<template>
    <div class="col-md-8">
        <h3 class="replay">评论回复: </h3>
        <h2 style='...'>暂无评论,点击左侧添加评论!!!</h2>
        <ul class="list-group>
            //:comment="comment"将comment传递给Item组件
            <Item v-for="(comment,index) in comments" :key="index" :comment="comment" :deleteComment="deleteComment"                         :index="index"/> 
        </ul>
    </div>
</template>

<script>
    //引入子组件Item
    import Item from './Item.vue'
    export default {
        //声明接收属性:这个属性就会成为组件对象的属性,在模板里面就可以直接读取此属性
        props: ['comments','deleteComment'],//deleteComment在List组件中并没有使用,是App组件传递过来,List将它传递给Item组件,供Item调用
        //映射组件
        components: {
            Item
        }
    }
</script>

<style>
</style>

List组件将comment传递给Item组件,要在Item组件里进行接收
Item.vue

<template>
    <li class="list-group-item">
        <div class="handle">
            <a href="javascript:;" @click="deleteItem">删除</a>
        </div>
        <p class="user"><span >{{comment.name}}</span><span >说:</span></p>
        <p class="centence">{{comment.content}}</p>
    </li>
</template>


<script>
    export default {
        //声明接收属性:这个属性就会成为组件对象的属性,在模板里面就可以直接读取此属性
        //props: ['comment'],只指定属性名

        props: {    //指定属性名和属性的类型
            comment: Object,
            deleteComment: function,
            index: Number
        },
        methods: {
            deleteItem(){
                //从this,即vm中取出数据
                const {comment,index,deleteComment} = this
                if(window.confirm(`确定删除${comment.name}的评论吗?`)){
                    deleteComment(index)
                }
            }
        } 
    }
</script>

<style>
</style>

组件Add.vue

<template>
    <div>
    </div>
</template>

<script>
    export default {
        //声明接收属性:这个属性就会成为组件对象的属性,在模板里面就可以直接读取此属性
        //props: ['comment'],只指定属性名

        //指定属性名和属性的类型
        //props: {    
        //    comment: Object
        //},

        //指定属性名/属性值类型/必要性
        props: {
            addComment:{
                type: function,
                required: true
            }
        }

        data(){
            return{
                name: '',
                content: ''
            }
        },
        methods: {
            add(){
                //1.检查输入的合法性
                const name = this.name.trim()
                const content = this.content.trim()
                if(!name || !content){
                    alert('姓名或内容不能为空!')
                    return
                }
                //2.根据输入的数据,封装成一个comment对象
                const comment = {
                    name,
                    content
                }
                //3.添加到comments中去
                this.addComment(comment)
                //4.清除输入
                this.name = ''
                this.content = ''
            }
        }
    }
</script>


<style>
</style>
基于单片机智能家居控制系统设计 *单片机设计介绍,基于单片机智能家居控制系统设计。 阅读详情

相关推荐

高数 | 【极限与等价无穷小】两个重要极限 & 经典错误 & 什么情况下求极限可以直接带入

一. 第一个重要极限 二. 第二个重要极限 三. 导数定义式 全文见【高等数学】两个重要的极限 - 知乎

"You are worthy! You can do it!" 6万+

vue组件化编码

一、使用vue-cli创建模板项目 1】vue-cli是vue官方提供的脚手架工具(一个库) http://www.github.com/vuejs/vue-cli 2】创建vue项目 npm install -g vue-cli(注:只需要安装一次脚手架) vue init webpack vuedemo(注:webpack是模板,提供了6个可选模板项目) (会提示几个问题,第一个问题name必...

weixin_45221036的博客 418

RTX 4060笔记本也能跑!保姆级教程:用Ollama在Windows上部署DeepSeek-R1-8B模型

本文详细介绍了如何在RTX 4060笔记本上通过Ollama本地部署DeepSeek-R1-8B模型,提供从环境配置到性能调优的全流程优化指南。针对笔记本用户的显存、散热等问题,给出了量化模型选择、启动参数优化及散热解决方案,帮助用户在消费级硬件上高效运行大语言模型。

weixin_28745067的博客 525

Vue组件基础1:todoList之组件化编码

vue组件基础1:todoList之组件化编码

weixin_46913268的博客 911

Intouch间接变量(扩展)

间接变量只是Intouch提供给开发者的便捷方式之一,并不是所有情况都一定要使用间接变量,有时候用条件语句或者内存变量的方式也能起到类似的作用。

weixin_41571357的博客 2168

从零到一:YOLOv11高帧率模型在RDK X5上的ONNX转换与部署实战

本文详细介绍了将最新的YOLOv11高帧率模型部署到地平线RDK X5开发板的完整实战流程。内容涵盖从PyTorch模型导出ONNX、地平线工具链环境配置与模型量化编译,到编写高效的板端推理代码,并针对高帧率目标进行了后处理优化。通过实战避坑指南,帮助开发者在RDK X5上实现30FPS以上的实时目标检测。

weixin_29089057的博客 139

vue进阶—1.vue组件化实践

1.1组件化 vue组件系统提供了一种抽象,让我们可以使用独立可复用的组件来构建大型应用,任意类型的应用界面都可以抽象为一个组件树。组件化能提高开发效率,方便重复使用,简化调试步骤,提升项目可维护性,便于多人协同开发 1.1.1 组件通信的常用方式 props 父给子传值 //child props:{msg:String} //parent <HelloWorld msg="Welcome to Your Vue.js App"> 子给父传值 //child this.$emit('add

贝贝小菜鸟的博客 445

VS Code + Codex 在 WSL 中使用的正确姿势

Codex 登录只能在本地完成。文件仍可通过 UNC 路径访问 WSL → 本地 Codex 就能照常工作。避免在 WSL 内重复安装/登录 Codex 扩展。

yangguangwuyue的博客 9840

Vue组件化编码

Vue创建项目 1. 使用vue-cli创建模板项目,是vue官方提供的脚手架工具 2. vue-cli的github地址:https://github.com/vuejs/vue-cli/tree/v2 3. 创建项目命令 npm install -g vue-cli:安装vue-cli脚手架 vue init webpack vue_demo:使用webpack模板创建项目 cd vue_demo:进入项目目录 npm install:安装项目需要的依赖 npm run dev:启动vu

zl979899的博客 190

YOLO26改进策略【Neck】| arXiv 2025 分层多头注意力HMHA 子空间拆分提多样 + 通道重排降冗余,强化目标检测精度

HMHA(Hierarchical Multi-Head Attention,分层多头注意力)旨在解决传统多头注意力(MHA)在图像恢复任务中的核心缺陷——特征冗余。传统MHA将通道均匀拆分给各个头,导致不同头学习的子空间信息相似,进而出现多头关注同一区域、忽略退化区域修复的问题,限制了模型的特征表达能力。HMHA通过“分层子空间拆分+通道重排序”策略,让每个头学习差异化、互补的上下文特征,从根源上缓解冗余,提升图像恢复任务中对复杂退化场景的特征捕捉能力。

Limiiiing的博客 212

[SaaS] 阿里妈妈-万相营造

有controlnet的介入,我们是默认controlnet会介入,在inapinting时会把带有商品的画布做一点扩充,然后走inapinting和controlnet,其实也做了一点outpainting的工作。基于阿里妈妈营销平台,提供从图文到视频再到落地页的素材级智能化创意支持,是您营销创意数字资产累积和升值的阵地,最大化提升营销的效率和效果。目前看来抠图基本都是sam了,现在weshop也是,都有一个预扣好的主体,但是一点进去也会重新sam。atomovideo->图生视频。

liguandong 524

组件化编码流程

组件化编码流程 props适用于什么通信 父子组件通信 v-model注意点 props

m0_51092575的博客 343

Burpsuite 使用教程

Burpsuite 使用教程

xiongIT的博客 8219

vue笔记之:组件化编码

组件定义与使用 vue 文件的组成(3个部分) 模板页面<template> 页面模板 </template> JS 模块对象<script> export default { data(){return {};}, methods:{}, computed:{}, compo...

weixin_43379230的博客 362

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Vue开发实战(03)-组件化开发

对组件功能的封装,可以像搭积木一样开发网页。 Vue官方的示例图对组件化开发的形象展示。左边是一个网页,可以按照功能模块抽象成很多组件,这些组件就像积木一样拼接成网页。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aS7Zk8tp-1686298456553)(null)] 1 什么是组件化开发 1.1 浏览器封装好的组件 在页面的源码里写出的button标签,会在前端页面中显示如下样式: 这button就是个组件,这样前端页面在显示上会加上边框和鼠标悬停样式,还可使用c

JavaEdge全是干货的技术号 3845

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

vue 动态组件名_11月08日Vue案例01

组件化编码的基本流程:1、拆分组件2、静态组件(显示的界面数据是固定的,没有交互)3、动态组件(初始化显示(动态展示出来)、交互)1、组件定义与使用01、vue文件的组成(3个部分)1)、模板页面页面模板2)、JS模块对象exportdefault{data(){return{}...

weixin_39580042的博客 174

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

第二章Vue组件化编程

如果想实现,按一个删除键就能删除todo-items对应的一条数据,该如何实现通以上代码不难发现,数据项在Vue的实例中但删除操作要在组件中完成, 那么组件如何才能删除Vue实例中的数据呢?此时就涉及到参数传递与事件分发了, Vue为我们提供了自定义事件的功能很好的帮助我们解决了这个问题;使用this.$emit(‘自定义事件名’, 参数) , 操作过程如下:在vue的实例中增加了methods对象并定义了一个名为removeItems的方法。

一名在校大三学习JAVA 1288

【VUE】Vue组件化(四)

【VUE】Vue组件化(四)

iiLeon的博客 168

Vue组件化开发小笔记及浏览器本地存储

Vue组件化开发小笔记及浏览器本地存储,mixin混入的使用,插件的用法,组件间父子通信

m0_57135756的博客 221

vue2完结

(1)拆分静态组件:组件要按照功能点拆分,命名不要与html元素冲突(2)实现动态组件:考虑好数据的存放位置,数据是一个组件在用,还是一些组件在用(3)一个组件在用:放在组件自身即可(4)一些组件在用:放在他们共同的父组件上(Vue上叫做状态提升) (3)实现交互:从绑定事件开始2.props适用于(1)父组件---->子组件通信(2)子组件---->父组件通信(要求父组件先给予一个函数)v-model绑定的值不能是props传过来的值,因为props传过来的值不建议修改。

m0_64081601的博客 1397

vue进阶

1. vue脚手架 用来创建vue项目的工具包 创建项目: npm install -g vue-cli vue init webpack VueDemo 开发环境运行: cd VueDemo npm install npm run dev 生产环境打包发布 npm run build npm install -g serve ser...

奋斗牛的博客 1304

Vue2 —— 学习(七)

按功能拆,命名不能和 html 中的标签冲突,实现静态界面不考虑交互。

qq_63342197的博客 1244

vue全家桶介绍

1. vue脚手架 用来创建vue项目的工具包 创建项目: npm install -g vue-cli vue init webpack VueDemo 开发环境运行: cd VueDemo npm install npm run dev 生产环境打包发布 npm run build npm install -g serve ser...

子非渔 786

11.5 Vue day06 父子组件通信、自定义事件

组件化编码流程:(1).拆分静态组件:组件要按照功能点拆分,命名不要与html元素冲突。(2).实现动态组件:考虑好数据的存放位置,数据是一个组件在用,还是一些组件在用:1).一个组件在用:放在组件自身即可。2). 一些组件在用:放在他们共同的父组件上(状态提升)。(3).实现交互:从绑定事件开始。props适用于:(1).父组件 ==> 子组件 通信(2).子组件 ==> 父组件 通信(要求父先给子一个函数)

m0_56356342的博客 387

vue修改编码_vue脚手架怎么修改jquery的版本?

vue有自己的脚手架构建工具vue-cli,使用起来非常方便,使用webpack来集成各种开发便捷工具,比如:代码热更新,修改代码之后网页无刷新改变,对前端开发来说非常的方便PostCss,再也不用去管兼容性的问题了,只针对chrome写css代码,会自动编译生成支持多款浏览器的css代码Eslint,统一代码风格,规避低级错误,对于有代码洁癖的人来说是绝对的好东西,不过有些地方的代码校验有时候也...

weixin_39943202的博客 339

Vue项目常用的工具

1. vue脚手架 用来创建vue项目的工具包 创建项目: npm install -g vue-cli vue init webpack VueDemo 开发环境运行: cd VueDemo npm install npm run dev 生产环境打包发布 npm run build npm install -g serve serve dist http://localhost:5000 2. eslint 用来做项目编码规范检查

weixin_44890979的博客 3409
上一篇: Vue_自定义事件2
下一篇: Vue_组件间通信2,使用PubSubJS库
明明在学JAVA
博客等级 码龄17年 58粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值