vue 扁平化_Vue.js计算属性和样式

可以通过这个属性来计算得出另外一个值,并且当原属性改变它也会相应改变

通篇读下来有两个属性:computed和watch 。一个方法:methods计算属性:基于它的依赖缓存。计算属性只有在它的相关依赖发生改变时才会重新取值。这就意味着只要 message 没有发生改变,多次访问 reversedMessage 计算属性会立即返回之前的计算结果,而不必再次执行函数。

方法:每当重新渲染的时候,method 调用总会执行函数。

watch:观察某个mustache改变时,作出相应变化

v-once这里只会更新一次:{{message}}

下面输入会直接同步这里:{{message}}

v-modle:双向更新:

反转message计算属性computed:{{reversedMessage}}

使用method中定义一个函数:{{ reverseMessage() }}

使用$watch方法fistName:

使用$watch方法lastName:

这里是fullName:{{fullName}},注意观察变化

使用method中定义一个函数getName:{{ getName() }}

使用computed计算getName:{{ computedName }}

var vm = new Vue({

el:'#app',

data:{

message:'caibaojian.com',

firstName:'Baojian',

lastName:'Cai',

fullName:'Baojian Cai'

},

//计算属性

//计算属性是基于它的依赖缓存。计算属性只有在它的相关依赖发生改变时才会重新取值。这就意味着只要 message 没有发生改变,多次访问 reversedMessage 计算属性会立即返回之前的计算结果,而不必再次执行函数。

computed:{

reversedMessage:function(){

var msg = this.message;

var msg2 = msg;

return msg2.split('').reverse().join('');

},

computedName:function(){

return this.firstName + ' ' + this.lastName;

}

},

//方法函数,

//每当重新渲染的时候,method 调用总会执行函数。

methods:{

reverseMessage:function(){

return this.message.split('').reverse().join('');

},

getName:function(){

return this.firstName + ' ' + this.lastName;

}

},

//$watch方法

watch:{

//观察fistName发生变化,fullName相应变化

firstName:function(newVal,oldVal){

console.log('newVal:'+newVal, 'oldVal:'+oldVal);

this.fullName= newVal + ' ' + this.lastName;

},

//观察lastName是否发生改变,fullName相应变化

lastName:function(newVal,oldVal){

console.log('newVal:'+newVal, 'oldVal:'+oldVal);

this.fullName = this.firstName + ' ' + newVal;

}

}

})

另外computed还提供一个设置的方法

computed: {

fullName: {

set: function(newVal) {

var names = newVal.split(' ');

this.firstName = names[0];

this.lastName = names[names.length - 1];

}

},

}

vm.fullName = 'Jack Cai';

随着fullName的改变,同时设置了其它值。

下面是一个比较完整的例子应用。

Ask a yes/no question:

{{ answer }}

var watchExampleVM = new Vue({

el: '#watch-example',

data: {

question: '',

answer: 'I cannot give you an answer until you ask a question!'

},

watch: {

// 如果 question 发生改变,这个函数就会运行

question: function (newQuestion) {

this.answer = 'Waiting for you to stop typing...'

this.getAnswer()

}

},

methods: {

// _.debounce 是一个通过 lodash 限制操作频率的函数。

// 在这个例子中,我们希望限制访问yesno.wtf/api的频率

// ajax请求直到用户输入完毕才会发出

// 学习更多关于 _.debounce function (and its cousin

// _.throttle), 参考: https://lodash.com/docs#debounce

getAnswer: _.debounce(

function () {

var vm = this

if (this.question.indexOf('?') === -1) {

vm.answer = 'Questions usually contain a question mark. ;-)'

return

}

vm.answer = 'Thinking...'

axios.get('https://yesno.wtf/api')

.then(function (response) {

vm.answer = _.capitalize(response.data.answer)

})

.catch(function (error) {

vm.answer = 'Error! Could not reach the API. ' + error

})

},

// 这是我们为用户停止输入等待的毫秒数

500

)

}

})

自己要注意的一些地方:

放在methods属性下面的方法调用要加():如reserveMessage()

放在computed对象下的属性具有缓存,调用直接调用属性:reversedMessage

computed还可以设置

watch观并察适合监控某些mustache的变化,并对其操作。

演示

发现样式这一段很少内容,就一起加在这里了。

样式class可以通过一个表达式、对象、计算属性或者数组来添加

内嵌样式可以通过一个对象或者数组对象来添加

css3前缀会自动补全,不需要关注各个浏览器不同的浏览器前缀。

测试这里的class表达式
测试这里的class Object
测试用computed属性来得到class
这里用数组表示class
三元表达式
数组里加对象
内嵌样式
内嵌对象样式
内嵌数组对象样式

var app1 = new Vue({

el: "#app-1",

data: {

activeColor: 'blue',

fontSize: 12,

styleObject: {

color: 'red',

fontSize: '12px'

},

baseStyle: {

color: 'red',

fontSize: '12px'

},

layoutStyle: {

'font-size': '19px',

'transform': 'rotate(30deg)',

'transition': 'transform .3 ease',

},

activeClass: 'active',

errorClass: 'text-danger',

isActive: true,

hasError: false,

classObject: {

'active': true,

'text-danger': true

}

},

computed: {

classComputed: function() {

return {

'active': this.isActive && !this.hasError,

'text-danger': this.hasError && this.hasError.type === 'fatal',

}

}

}

})

演示

【Vue.js计算属性和样式】相关文章:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: vue3_dev_tools.crx是Vue开发工具的扩展文件。Vue是一个流行的JavaScript框架,用于构建用户界面。开发工具可以帮助开发人员更轻松地调试Vue应用程序并提高开发效率。 vue3_dev_tools.crx是Vue开发工具的Chrome扩展文件,用于在Chrome浏览器中集成Vue开发工具。通过安装此扩展,开发人员可以在Chrome开发者工具中访问Vue开发工具的功能。 安装vue3_dev_tools.crx扩展非常简单。首先,将该文件下载到本地计算机。然后,在Chrome浏览器的地址栏中输入 chrome://extensions/ 并按下回车键,打开扩展程序页面。在该页面中,启用“开发者模式”,然后点击“加载已解压的扩展程序”按钮。选择之前下载的vue3_dev_tools.crx文件,然后点击确认。这样,Vue开发工具就会成功安装到Chrome浏览器中。 一旦安装完成,开发人员可以打开Chrome开发者工具,然后在Vue选项卡中访问Vue开发工具。在这个选项卡中,可以查看Vue组件的层次结构、数据、计算属性、方法等。还可以在组件中进行实时的数据更改、触发事件和查看更新后的状态。 通过使用vue3_dev_tools.crx扩展,开发人员可以更方便地查看和调试Vue应用程序。这样,他们可以更快速地定位和解决问题,提高开发效率。这对于Vue开发人员来说是一个非常有用的工具,以确保他们的应用程序在运行时保持顺畅和正确。 ### 回答2: vue3_dev_tools.crx 是一个用于 Vue.js 开发的浏览器扩展工具。Vue.js 是一个流行的前端框架,用于构建用户界面,而 vue3_dev_tools.crx 则为开发者提供了一些简化开发流程的功能。 这个扩展工具有很多实用的功能。首先,它可以帮助开发者轻松地检查 Vue.js 组件的状态和属性。开发者可以通过查看组件树来快速定位到问题所在,并实时查看数据的变化。这样可以方便地调试代码,提高开发效率。 其次,vue3_dev_tools.crx 还提供了一个强大的调试工具,可以帮助开发者在开发过程中快速定位错误。它可以捕捉到程序中的错误,并显示详细的错误信息,包括错误的源代码位置。这对于开发者来说非常有价值,可以帮助他们快速排查问题并修复代码。 此外,vue3_dev_tools.crx 还具有一些其他实用的功能,比如性能分析工具和代码编辑器。性能分析工具可以帮助开发者监测应用程序的性能瓶颈,并提供优化建议。代码编辑器则提供了一些代码补全和自动格式化功能,让开发者编写代码更加方便和高效。 总的来说,vue3_dev_tools.crx 是一个非常实用的工具,可以帮助开发者更好地调试和优化 Vue.js 应用程序。它提供了许多有用的功能,可以提高开发效率,减少开发过程中的错误,并且提供了一些额外的工具,帮助开发者更好地编写代码和优化性能。 ### 回答3: vue3_dev_tools.crx是一个扩展文件,用于在Chrome浏览器中添加Vue.js开发工具。Vue.js是一种流行的JavaScript框架,用于构建用户界面和单页面应用程序。vue3_dev_tools.crx插件为开发人员提供了在调试Vue.js应用程序时的便利工具。 当我们在开发Vue.js应用程序时,我们可能会遇到一些调试和测试的需求。vue3_dev_tools.crx插件可以帮助我们实现这些需求。通过在Chrome浏览器中安装该扩展,我们可以在Vue.js应用程序中查看组件层次结构、状态和数据流,并对其进行调试。 vue3_dev_tools.crx还提供了一些其他有用的功能,如性能检测、时间旅行(可以回溯和检查历史状态)以及组件和指令的代码高亮显示。这些功能使开发人员能够更轻松地调试和优化Vue.js应用程序。 安装vue3_dev_tools.crx非常简单。只需在Chrome浏览器中搜索“Vue.js Devtools”扩展,然后按照指示进行安装即可。安装完成后,我们将在Chrome浏览器的工具栏中看到Vue.js Devtools图标。点击图标后,将显示一个侧边栏,其中包含有关我们的Vue.js应用程序的详细信息。 总之,vue3_dev_tools.crx是一个非常有用的扩展,它提供了许多方便的功能,帮助我们更好地调试和优化Vue.js应用程序。无论是新手还是经验丰富的Vue.js开发人员,都能从这个工具中受益。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值