<template>
<div>
{{ dataFromAPI }}
тут вызов апи по событию, в вашем случае вы его к чему-нибудь привязываете
<button @click="getAPI">Get API</button>
</div>
</template>
<script>
// смешивать jQuery c Vue - плохой вариант, лучше используйте axios
import axios from 'axios'
export default {
data() {
return {
// тут у вас реактивное свойство
dataFromAPI: null,
}
},
mounted() {
// тут первый вызов апи при загрузке страницы
this.getAPI()
},
methods: {
getAPI() {
return axios
.get('https://api.your.address')
.then(response => {
if (response.data) {
// когда апи возвращает данные передаем их реактивному свойству
// и они обновляются без перезагрузки, как вам надо
this.dataFromAPI = response.data
}
})
// ловим ошибки
.catch(error => {
console.log(error);
})
.finally(() => {
// если надо -- дополнительные действия (выключить лоадер, например)
})
}
}
}
</script>
другим слайдером
<?php
interface InputFields {
public function show();
public function addStyle(array $styles);
}
class InputEmail implements InputFields {
private $_styles = "styles=\"";
private $_start_tag = "<input type = 'email' ";
private $_end_tag = ">";
public function addStyle(array $styles) {
foreach ($styles as $style => $value){
$this->_styles .= $style . ':' . $value . ';';
}
$this->_styles .= '"';
return $this->_styles;
}
public function show() {
echo $this->_start_tag . $this->_styles . $this->_end_tag . '<br>'. '<br>';
}
}
$input = new InputEmail();
$input->addStyle ([
'width' => '300px',
'border-radius' => '5px',
'border' => '1px solid blue',
'background' => '#fcfcfc',
'padding' => '10px 20px',
]);
$input->show();
// Output: <input type = 'email' styles="width:300px;border-radius:5px;border:1px solid blue;background:#fcfcfc;padding:10px 20px;"><br><br>
<template>
<input type="number" min=1 max=5 :class="{invalid:userChoice < 1 || userChoice > 5}" v-model="userChoice" />
</template>
<script>
export default {
data() {
return {
userChoice: 1
}
}
}
</script>
<template>
<v-text-field some_propses>
<template v-slot:append>
<v-icon>Email</v-icon>
</template>
</v-text-field>
</template>
<script>
export default {
data() {
return {
}
}
}
</script>
<style>
.v-text-field > .v-input__control > .v-input__slot {
background-color: green;
}
</style>
url: window.location.href
<- ваша форма шлёт данные по адресу, который у вас в гет-строке, method: "POST"
data: {name: name, phone: phone}
$mysqli = new mysqli('yourhost', 'youruser', 'yourpassword', 'yourdb');
if (mysqli_connect_errno()) {
printf("Не удалось подключиться: %s\n", mysqli_connect_error());
exit();
}
printf("Изначальная кодировка: %s\n", $mysqli->character_set_name());
if (!$mysqli->set_charset("utf8")) {
printf("Ошибка при загрузке набора символов utf8: %s\n", $mysqli->error);
exit();
} else {
printf("Установлен текущий набор символов: %s\n", $mysqli->character_set_name());
}
ALTER DATABASE yourdbname CHARACTER SET utf8 COLLATE utf8_general_ci;
function checkWidth() {
if (window.innerWidth < 480)
console.log('что-то одно')
else
console.log('что-то другое')
}
window.addEventListener('resize', function (event) {
checkWidth();
}, true);
let original = {
foo: 'original',
bar: {
a: 1,
b: 2
}
};
let clone = {};
for (let key in original) {
clone[key] = original[key];
}
clone.foo = 'clone';
console.log( original );
console.log( clone );
<div id="app1">
<p>{{ count }}</p>
<p>
<button @click="increment">+</button>
<button @click="decrement">-</button>
</p>
</div>
// make sure to call Vue.use(Vuex) if using a module system
let original = new Vuex.Store({
state: {
count: 0
},
mutations: {
increment: state => state.count++,
decrement: state => state.count--
}
})
// 1
let clone = {};
for (let key in original) {
clone[key] = original[key];
}
/*
// 2
var clone = Object.assign({}, original);
*/
console.log( original.state.count );
console.log( clone.state.count );
new Vue({
el: '#app1',
computed: {
count () {
return clone.state.count
}
},
methods: {
increment () {
clone.commit('increment')
},
decrement () {
clone.commit('decrement')
}
}
})
import Vue from 'vue';
import Vuex from 'vuex';
import VueLodash from 'vue-lodash';
import lodash from 'lodash';
Vue.use(Vuex);
Vue.use(VueLodash, { lodash: lodash });
import App from '../components/copy-calculator/Index.vue';
import myApp from '../store/modules/myApp/myApp';
const store = new Vuex.Store({
modules: { myApp }
});
// Это работает
// let data = [
// { id: 1, values: { a: 'a', b: 'b' } },
// { id: 2, values: { c: 'c', d: 'd' } }
// ];
// let clone = lodash.cloneDeep(data);
// console.log(clone);
const appInstances = document.querySelectorAll('.myApp');
appInstances.forEach((appInstance)=>{
// Это уже не работает
let clone = lodash.cloneDeep(store);
new Vue({
el: `#myApp_${ appInstance.dataset.id}`,
clone,
components: { App },
});
});
\[(.+?)\]